const与#define的比较

来源:互联网 发布:网络任务平台 编辑:程序博客网 时间:2024/05/29 16:35

c++语言可以用const来定义常量,也可以用#define来定义常量。但是前者比后者有更多的优点:
(1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行静态类型安全检查;而对后者只能进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边缘效应)。
(2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。

所以在C++程序中,应尽量使用const来定义符号常量,包括字符串常量

要注意的是,constant、不仅仅用于定义符号常量,凡是需要编译器帮助我们预防无意中修改数据的地方,都可以使用const,如const数据成员、const成员函数、const返回类型、const参数等。

原创粉丝点击