是否可以在 linux 中使用更少的所有参数来调用类似函数的宏? 实际上这样做只会在 Visual Studio 中生成警告(警告 4003)并且未分配的变量会替换为“”。
但是使用 g++ 编译它会在 linux 中产生错误(“错误:宏 *** 需要 ** 参数,但仅 ** 给定”)。
是否有任何可能的方法来禁用或克服它?
最佳答案
宏调用中的参数数量必须与宏定义中的参数数量完全匹配。所以,不,您不能使用比参数少的参数调用宏。
要“克服”它,您可以使用不同数量的参数定义多个不同名称的宏。
C++0x(还不是标准,但你的编译器可能部分支持)增加了对可变参数宏的支持,可以用可变数量的参数调用。
关于c++ - 使用更少的参数调用 C++ 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3301152/