define、const和volatile的区别

2020-03-24  本文已影响0人  小白PK大牛

#define

定义的指定,程序在预处理阶段将用#define所定义的内容只是进行了替换。因此程序运行时,常量表中并没有用#define所定义的宏,系统并不为它分配内存,并且在编译时不会检查数据类型,出错的概率要大一些。
注意:宏只是简单的替换

#define N 2 + 3
int a = N / 2;
//a的值就是:a = 2 + 3 / 2 = 3.5;

const

定义的常量,在程序运行时是存放在常量表中,系统会为它分配内存,并且在编译时会进行类型检查。

volatile

优化器在用到这个变量时必须每次都要小心地重新读取这个变量值,而不是使用保存在寄存器里的备份

上一篇 下一篇

猜你喜欢

热点阅读