const常量和#define宏常量的区别

C++能够用const定义常量,也可使用#define来定义常量,可是前者比后者有更多的优势:c++

1,const常量有数据类型,而宏常量没有数据类型,编译器能够对前者进行静态类型安全检查,而对后者只进行字符替换,没有类型安全检查,而且在字符替换时可能产生意想不到的错误(边际效应)安全

2,有些集成化的调试工具能够对const常量进行调试,可是不能对宏常量进行调试。工具

 

因此在C++中应尽可能使用const来定义符号常量,包括字符串常量。调试

被const修饰的东西都受到c++/c语言实现的静态类型安全机制的强制保护,能够预防意外修改,提升程序的健壮性。字符串

相关文章
相关标签/搜索