我收到以下错误消息
error: '0' cannot be used as a function
尝试编译以下行时:
NOOP(0 != width);
NOOP定义如下:
#define NOOP (void)0
源代码是SDK的一部分-因此应该可以。而且我发现
(void)0
实际上是在C++中描述“无操作”的有效方法。但是,为什么要将 bool(boolean) 参数传递给什么都不做的函数呢?以及如何消除错误消息? 最佳答案
MACRO没有定义任何参数,因此在预处理器替换代码后,该语句最终如下所示:
(void)0(0 != width);
这使编译器认为您试图在0上使用“()”运算符(即使用0作为函数)感到困惑。
我建议您放下“(0!= width)”(这会引起误解),然后只写NOOP;
关于c++ - 将参数传递给C++中的无操作宏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13242431/