const在C语言和c++中的区别

C++语言 码拜 8年前 (2016-04-20) 916次浏览
问题描述:
程序员面试宝典中:有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。在c++程序中只使 用cosnt常 量而不使用宏常量,即const常量完全取代宏常量
这句话是什么意思?尤其是第二句话
个人理解:
第一句:宏在是预处理阶段的就进行展开了,所以没有办法进行调试,也就没有类型安全检查
第二句:在c++中,const修饰的变量已经不是常变量了,而是成为常量了,就是不在为它分配空间了,而直接即使存储在常量区中
不知道以上个人的理解对不对?
解决方案

20

C 和C++对const 定义的对象。
在解析表达式的时候,行为是不一样的
假如 一个 const 内置类型的对象(尤其是整型对象),
用常量表达式初始化了,那么C++就可以把它解析为常量表达式
这样宏常量的功能,就可以被 const 对象完全取代,从而就不再需要宏常量了
因此,C++之父。鼓励大家多用 const 少用宏常量。
C比较保守,const 对象,并无这种用法,不会当作常量表达式。
因此还是不能缺少宏常量的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明const在C语言和c++中的区别
喜欢 (0)
[1034331897@qq.com]
分享 (0)