C++语言可以用const定义常量,也可以用#define定义常量,但是前者比后者更有优点。
1.const常量有数据类型,而#define定义的宏常量没有数据类型,编译器对前者可进行类型安全检查,对后者只能进行字符替换,没有类型安全检查,并且在字符替换中可能出现意料不到的错误(边际效应)。
2.有些集成化的环境可以对const常量进行调试,但是不能对宏常量进行调试。在C++中只能使用const常量,即const常量完全取代宏常量。
C++语言可以用const定义常量,也可以用#define定义常量,但是前者比后者更有优点。
1.const常量有数据类型,而#define定义的宏常量没有数据类型,编译器对前者可进行类型安全检查,对后者只能进行字符替换,没有类型安全检查,并且在字符替换中可能出现意料不到的错误(边际效应)。
2.有些集成化的环境可以对const常量进行调试,但是不能对宏常量进行调试。在C++中只能使用const常量,即const常量完全取代宏常量。