10
Alternativa padrão ao truque ## __ VA_ARGS__ do GCC?
Há um problema conhecido com argumentos vazios para macros variadas em C99. exemplo: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); O uso BAR()acima é realmente incorreto de acordo com o padrão C99, uma vez que se expandirá para: printf("this breaks!",); Observe a vírgula à …