宏观#define MAX 80
相当于const int MAX = 80;
两者都是恒定的,不能修改。
使用宏而不是常量不是更好吗?常量整数占用内存。宏的名称被预处理器替换为其值,对吗?所以不需要内存。
为什么我要使用 const int 而不是宏?
原因#1:范围界定。宏完全忽略范围。
namespace SomeNS {
enum Functor {
MIN = 0
, AVG = 1
, MAX = 2
};
}
如果上面的代码恰好包含在定义了之后的文件中MAX
宏,它会很高兴地被预处理成80 = 2
,并且编译失败。
此外,const
变量是类型安全的,可以使用常量表达式安全地初始化(不需要括号)等。
另请注意,当编译器可以访问const
使用变量的定义时,允许“内联”其值。所以如果你从不获取它的地址,它甚至不需要占用空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)