10
Стандартна альтернатива трюку ## __ VA_ARGS__ GCC?
Існує добре відома проблема з порожніми аргументами для макросів в змінному числі C99. приклад: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); Використання BAR()вище дійсно є неправильним згідно стандарту C99, оскільки воно розшириться до: printf("this breaks!",); Зверніть увагу на кінцеву кому - не працює. Деякі …