在C中,有两种简单的定义常量的方式:
1.使用#define预处理器
2.使用const关键字
const 定义的是变量不是常量,只是这个变量的值不允许改变是常变量!带有类型。编译运行的时候起作用存在类型检查。
define 定义的是不带类型的常数,只进行简单的字符替换。在预编译的时候起作用,不存在类型检查。
const | #define | |
---|---|---|
编译器处理方式 | 编译运行阶段使用 | 宏是在预处理阶段展开 |
类型 | 有具体的类型 | 宏没有类型 |
安全检查 | 在编译阶段会执行类型检查 | 不做任何类型检查,仅仅是展开。 |
内存空间 | 分配内存 | 不分配内存 |
效率 | 高 | 低 |
const 定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象 #define 一样给出的是立即数,所以,const 定义的常量在程序运行过程中只有一份拷贝(因为是全局的只读变量,存在静态区),而 #define 定义的常量在内存中有若干个拷贝。
推荐使用 const 定义常量
————————————————
版权声明:本文为CSDN博主「hanfengzqh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hanfengzqh/article/details/89285791