====== #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的两个重定义都不合法。 在实践中,程序员不应该依赖这种重复定义,一个定义应该只出现在一个地方。 {{tag>C语言}}