您的位置:首页 > 其它

define,const与inlin

2016-07-22 20:47 169 查看
1>  define与const1.编译器处理阶段不同:
define宏在编译预处理阶段展开, const常量在编译阶段使用
2.类型安全检查不同
defined宏没有类型,不做类型检查,只做简单的展开
const常量有类型,在编译阶段会执行类型检查
3.存储方式不同
define定义的常量在替换后运行过程中会不断地占用内存,在内存中有若干份copy,而const定义的常量存储在数据段,只有一份copy,效率更高。
4.能否调试
define定义的常量不能被调试,const常量可以。
5.效率不同
编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

2> define 与inline1:宏define在预处理阶段完成;inline在编译阶段
2:类型安全检查:inline函数是函数:要做类型检查;3:替换方式:define字符串替换;inline是指嵌入代码,在编译过程中不单独产生代码,在调用函数的地方不是跳转,而是把代码直接写到那里去,对于短小的函数比较实用,且安全可靠。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: