<C专家编程>中推荐,若自己定义了某个宏,在使用完之后,最好把它释放掉,从而在后面就没有这个宏了。
cout<< MAXY<<endl;
#undef MAXY<<endl
//cout<< MAXY<<endl;//释放后,它不可用了,
#undef 这个关键字可以在main函数中用。
而之前的#define一般是在文件开始中定义的。
由于宏定义可以覆盖,即若之前定义了这个宏(但会warning),而现在又定义了这个宏,则只有当前的生效。从而为了防止把之前的覆盖,一般用:
#ifndef MAX
#define ,...........
#endif
这种方式,也经常用在防止头文件重复包含中。
注意:取消某个之前末定义的宏是允许的,在Linux中,有些文件一开始就#undef,然后定义自己的宏。