computer:c:tips:undef_command
这是本文档旧的修订版!
#undef取消定义
使用#undef来取消一个宏的定义。
取消一个本来就没有定义的宏,不算错误。取消之后,可以使用#define给宏一个新的定义。
#undef中不进行宏扩展。
标准C允许使用#define重复定义同一个宏,但要求宏的定义是一样的,包括使用的符号和空白的位置,当然具体的空白字符可以不同。如:
#define NULL 0 #define FUNC(x) x+4 #define NULL /* null pointer */ 0 #define FUNC(x) x + 4 #define FUNC(y) y + 4
NULL的重定义是合法的,而FUNC的两个重定义都不合法。
在实践中,程序员不应该依赖这种重复定义,一个定义应该只出现在一个地方。
computer/c/tips/undef_command.1409912440.txt.gz · 最后更改: 2014/11/01 02:02 (外部编辑)