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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const常量和#define宏常量的区别相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/lifengguo_njupt/article/details/7992332

C++可以用const定义常量,也可以使用#define来定义常量,但是前者比后者有更多的优点:

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

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

 

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

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

以上是关于const常量和#define宏常量的区别的主要内容,如果未能解决你的问题,请参考以下文章

const 常量与 define常量的区别

const和defin区别

const和#define有什么区别?

#define与const定义常量的区别

const实现机制及与#define的区别

正确使用iOS常量(const)enum以及宏(#define)