我有一个编译为gcc和vC++的代码。代码有两个场景中调用的通用宏。如何在为gcc和vC++编写通用代码时克服vC++警告C4003
- 当我们传递一些参数给它。
- 当我们不想传递任何参数。
的这样的代码的一个例子是:
#define B(X) A1##X
int main() {
int B(123), B();
return 0;
}
的期望从编译的预处理步骤输出为:
int main() {
int A1123, A1;
return 0;
}
对GCC和VC++的输出是作为预计,但vC++发出警告:
warning C4003: not enough actual parameters for macro 'B'
我该怎么办删除此警告并获得预期输出?
谢谢。
感谢山姆的回应。我不熟悉宏中的VA_ARGS,并希望在应用此解决方案之前阅读文献。 不幸的是,当我有其他未决任务时,我没有多少时间处理警告。我会尽快回复您。 再次感谢。 – compbugs 2010-03-12 11:32:52
当然,祝你好运,让我知道如果这个工程或如果你有任何进一步的问题。 – 2010-03-12 13:59:05