当前位置:嗨网首页>书籍在线阅读

05-重定义常量

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

16.2.2 重定义常量

假设先把 LIMIT 定义为 20 ,稍后在该文件中又把它定义为 25 。这个过程称为重定义常量。不同的实现采用不同的重定义方案。除非新定义与旧定义相同,否则有些实现会将其视为错误。另外一些实现允许重定义,但会给出警告。ANSI标准采用第1种方案,只有新定义和旧定义完全相同才允许重定义。

具有相同的定义意味着替换体中的记号必须相同,且顺序也相同。因此,下面两个定义相同:

#define SIX 2 * 3
#define SIX 2 * 3

这两条定义都有3个相同的记号,额外的空格不算替换体的一部分。而下面的定义则与上面两条宏定义不同:

#define SIX 2*3

这条宏定义中只有一个记号,因此与前两条定义不同。如果需要重定义宏,使用 #undef 指令(稍后讨论)。

如果确实需要重定义常量,使用 const 关键字和作用域规则更容易些。