我想用C编写一个宏,它接受任意数量的参数,而不是特定数量的参数
例:
#define macro( X ) something_complicated( whatever( X ) )
X
参数的数目在哪里
我需要这个,因为它whatever
已重载,可以使用2或4个参数调用。
我尝试两次定义宏,但是第二个定义覆盖了第一个!
我正在使用的编译器是g ++(更具体地说,是mingw)
8
您要使用C还是C ++?如果您使用的是C,为什么要使用C ++编译器进行编译?要使用正确的C99可变参数宏,您应该使用支持C99的C编译器(例如gcc)而不是C ++编译器进行编译,因为C ++没有标准的可变参数宏。
—
克里斯·卢茨
好吧,我认为C ++在这方面是C的超集..
—
Hasen
tigcc.ticalc.org/doc/cpp.html#SEC13详细介绍了可变参数宏。
—
Gnubie 2011年
—
zafarulq
对于未来的读者:C 不是 C ++的精华。它们共享许多东西,但是有规则禁止它们成为彼此的子集和超集。
—
老王