define宏常量和const常量的区别

 我来答
山东中公优就业
2017-12-16 · TA获得超过1511个赞
知道小有建树答主
回答量:907
采纳率:88%
帮助的人:214万
展开全部
1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。const定义的常量,在程序运行时在常量表中,系统为它分配内存。
2.define定义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类型检验。const定义的常量,在编译时进行严格的类型检验,可以避免出错。
3.define定义表达式时要注意“边缘效应”,
4. const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。

5. 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。规则5-2-1:在C++ 程序中只使用const 常量而不使用宏常量,即const 常量完全取代宏常量。
文旭乌孙昊英
2019-03-21 · TA获得超过3700个赞
知道大有可为答主
回答量:3071
采纳率:30%
帮助的人:199万
展开全部
#define语句指定一个字符串替换的规则,编译程序负责将你程序中符合规则的字符串进行替换,可替换的不仅限于常量,还可以替换程序、语句、函数名这些
常量仅限于数值、字符串这些能给变量赋值的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式