在控制调试信息的输出时该关键字可以起到作用。
micsoft网站上的解释:
gives you a function name to use when you want the function to be ignored and the argument list unevaluated.
MSDN的解释:
The __noop intrinsic specifies that a function should be ignored and the argument list be parsed but no code be generated for the arguments. It is intended for use in global debug functions that take a variable number of arguments.
#include <stdio.h>
#if DEBUG
#define PRINT printf
#else
#define PRINT __noop
#endif
int main()
{
PRINT("/nhello/n");
}
__noop指定一个函数可以被忽略并且参数列表不用被评估。他的意图是在全局调试函数上使用一个数值参数变量。如果用#define PRINT ((void)0) 会有警告。