Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ visualc中的可变宏&x2B+;2010_C++_Visual C++_C Preprocessor - Fatal编程技术网

C++ visualc中的可变宏&x2B+;2010

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的扩展更加明确,因为您

我已经看过了,但我需要知道一些非常具体的事情

我正在使用VisualStudio2010

为什么C预处理器在这里删除前面的逗号

#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
为空时删除尾随逗号。希望下一个标准能够解决这个问题。