const与define

在C++中定义一个常量用const修饰,也可以用#define来定义,但是前者比后者更具有优点:

  • const所修饰的常量可以具有类型,而宏常量没有数据类型。编译器可以对前者进行静态类型安全检查;而对后者只进行字符替换,没有类型安全检查,并且在字符替换的时候可能产生意料不到的错误。
  • 集成开发环境可以对const常量进行调试,而不能对宏常量进行调试。

建议在C++程序中尽量使用const来定义符号常量,包括字符串常量。