Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Но бывают и такие тесты:)
Не уверен, что правильно понял идею, но в gcc вроде бы a[5] = {0,0,0,0,0} то же что и a[5] = {0}.
Т.е. можно задать длинный-предлинный массив и по ходу регистрации тестов закидывать в него указатели.
Да, средствами чистого Си такую регистрацию тестов сделать не возможно.
Я не уверен, что любой линкер с этим справится.
1) Если вы вводите ограничение на количество строк в файле, то все тесты после этого ограничения тихо не компилируются, не запускаются и это можно не заметить! Нельзя ли как-нибудь громко падать, если файл с тестами превышает ограничение на размер?
-Werror=unused-function оно не скомпилируется. Можно макрос с проверкой вставлять, но этого делать и не хотелось. К сожалению, какого-нибудь макроса __LINES__ не дано.2) Это вопрос скорее эстетический — зачем нужно столько эквивалентных макросов?
Возможно, что и любой, надо добраться до проверки на MSVC. Если и там заработает, то должно много где работать. Ничего особенного здесь нет, эта эксплуатация полностью определённых vs. недо-определённых символов.
Вот в их-то способностях я и сомневаюсь.
В MSVC актуальность чистого С мне представляется не очень большой.
Может, макрос в конце файла — не такое уж большое зло?
Авто-регистрация тестов на С средствами языка