预处理conststatic与sizeof-使用const与#define的特点及区别

Posted 一串字符串

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预处理conststatic与sizeof-使用const与#define的特点及区别相关的知识,希望对你有一定的参考价值。

1:#define只是用来做文本替换的。例如:

#define PI 3.1415926
float angle;
angle=30*PI/180;

    那么,程序进行编译的时候,编译器会首先将“#define PI 3.1415926”以后所有代码中的“PI”全部换成“3.1415926”,然后进行编译。因此,#define常量则是一个Coppile-Time概念,它的生命周期止于编译器,它存在于程序的代码段,在实际程序中它只是一个常数、一个命令中的参数,并没有实际的存在。

    const常量存在于程序的数据段,并在堆栈分配了空间。const常量是一个Run-Time的概念,它在程序中确确实实地存在着并可以被调用、传递。const常量有数据类型,而宏常量没有数据类型。编译器可以对const常量进行类型安全检查。

以上是关于预处理conststatic与sizeof-使用const与#define的特点及区别的主要内容,如果未能解决你的问题,请参考以下文章

预处理conststatic与sizeof-内联函数与宏有什么区别

预处理conststatic与sizeof-用宏定义得到一个字的高位和低位字节

预处理conststatic与sizeof-static全局变量与普通的全局变量有什么区别

预处理conststatic与sizeof-C++中const有什么作用(至少说出3个)

预处理conststatic与sizeof-用#define实现宏并求最大值和最小值

c#/c++ 如何将结构的结构与 marshal.sizeof 联合