在Visual Studio2008中编写如下代码:
#include
using namespace std; int main() { #define MODI 10 cout << MODI << endl; #undef MODI cout << MODI + 1 << endl; return 0; }
编译器会对 cout << MODI + 1 << endl;这行语句报错。
原因就是#undef起的作用:
当用完一个宏,比如MODI,不希望下面的代码再用到这个MODI,,那么就可以#undef它,那么下面如果再用到了MODI这个宏,编译器就会报错。
一种常用做法为:
这样就只有在common.h中才能使用宏MAX。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228720.html原文链接:https://javaforall.net
