C++ visualc中的可变宏&x2B+;2010
我已经看过了,但我需要知道一些非常具体的事情 我正在使用VisualStudio2010 为什么C预处理器在这里删除前面的逗号C++ visualc中的可变宏&x2B+;2010,c++,visual-c++,c-preprocessor,C++,Visual C++,C Preprocessor,我已经看过了,但我需要知道一些非常具体的事情 我正在使用VisualStudio2010 为什么C预处理器在这里删除前面的逗号 #define PRINTME(...) printf("hello", __VA_ARGS__); 但这里没有: #define FINISH_IND(COUNT, ...) FINISH_X(,__VA_ARGS__, 1,2) 我似乎一辈子都想不出来 我认为删除逗号是一种扩展,而不是标准的一部分。请参阅您的供应商手册。它是一个扩展。GCC的扩展更加明确,因为您
#define PRINTME(...) printf("hello", __VA_ARGS__);
但这里没有:
#define FINISH_IND(COUNT, ...) FINISH_X(,__VA_ARGS__, 1,2)
我似乎一辈子都想不出来 我认为删除逗号是一种扩展,而不是标准的一部分。请参阅您的供应商手册。它是一个扩展。GCC的扩展更加明确,因为您必须在两个散列前面加前缀,即
,##uuu VA_ARGS_uu
,以便在\uu VA_ARGS_u
为空时删除尾随逗号。希望下一个标准能够解决这个问题。