【发布时间】:2022-01-07 15:31:55
【问题描述】:
我在开头定义了一些东西:
#define noprint
然后我在我的函数中返回,如果它被定义:
void print()
{
#ifdef noprint
return;
#else
//do stuff
#endif
}
然后在main函数中:
main()
{
#undef noprint
print();
}
它仍然不起作用。怎么会?
【问题讨论】:
-
#define只是文本替换。您对print()的定义将具有执行这些替换的任何结果。当您在main中调用它时,它会使用该定义。它不会回过头来重新编译print()的定义,如果您之前定义不同的话,它会是什么。 -
知道了,谢谢。