宏定义 undef
http://blog.csdn.net/lefter1986/article/details/8562798点击打开链接
在Visual Studio2008中编写如下代码:
#include <iostream>
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这个宏,编译器就会报错。
一种常用做法为:
#define MAX 50
#include "common.h"
#undef MAX
这样就只有在common.h中才能使用宏MAX。
#undef
就是取消一个宏的定义,之后这个宏所定义的就无效;