码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-08 10:22:40      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:预处理   编译器   pil   存在   调用   code   传递   文本   ppi   

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常量进行类型安全检查。

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

标签:预处理   编译器   pil   存在   调用   code   传递   文本   ppi   

原文地址:http://www.cnblogs.com/lovemi93/p/7636543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!