Форум — Development Препроцессор С c 1 1 Есть код вида://foo.h #define FOO_MARK void FOO_MARK fooFunction(); //foo.c #include "foo.h" void FOO_MARK fooFunction(){...} Не совсем понимаю зачем помечать пустым макросом функцию, что это дает? Ссылка
Для всяких autotools и прочих, проверка, что такая функция определена. joy4eg ★★★★★ (03.02.15 15:47:27 MSK) Показать ответы Ссылка
Это нужно, когда пишут кроссплатформенные шаренные библиотеки. На онтопике эти макросы пустые, а на оффтопике раскрываются в dllexport\dllimport EugeneBas ★★ (03.02.15 15:55:04 MSK) Показать ответ Ссылка
Ответ на: комментарий от joy4eg 03.02.15 15:47:27 MSK Не только определена, например в моем самописном скрипте это пометка для помещения данной функции в отдельный хидер для подключения библиотеки. Сомневаюсь, что это до меня никто не делал. sambist ★★ (03.02.15 16:06:58 MSK) Ссылка
Ответ на: комментарий от EugeneBas 03.02.15 15:55:04 MSK Да, похоже вы правы. Действительно проект покрывает несколько платформ, и да в windows версии макросы имеют наполнение. Спасибо. abcq ★★ (03.02.15 16:09:36 MSK) автор топика Ссылка
Ответ на: комментарий от joy4eg 03.02.15 15:47:27 MSK Для всяких autotools и прочих, проверка, что такая функция определена.нет Harald ★★★★★ (03.02.15 16:18:19 MSK) Ссылка
Потому что на некоторых платформах эти макросы могут быть совсем непустыми. Например, менять соглашение о вызовах на нестандартное. Gvidon ★★★★ (03.02.15 16:27:21 MSK) Ссылка