问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C或C#中define和const的区别

发布网友 发布时间:2022-04-07 08:46

我来回答

5个回答

热心网友 时间:2022-04-07 10:15

(1) 编译器处理方式不同
  define宏是在预处理阶段展开。
  const常量是编译运行阶段使用。
(2) 类型和安全检查不同
  define宏没有类型,不做任何类型检查,仅仅是展开。
  const常量有具体的类型,在编译阶段会执行类型检查。
(3) 存储方式不同
  define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。(宏定义不分配内存,变量定义分配内存。)const常量会在内存中分配(可以是堆中也可以是栈中)。
(4)const 可以节省空间,避免不必要的内存分配。
(5) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
(6) 宏替换只作替换,不做计算,不做表达式求解;宏预编译时就替换了,程序运行时,并不分配内存。

热心网友 时间:2022-04-07 11:33

#define 就是一个宏展开替换过程,不用开辟内存空间
const 定义了变量 要占内存空间

热心网友 时间:2022-04-07 13:08

#define有个致命的缺陷,不受作用域*。凡是在#define之后的代码,都可以直接使用#define定义的数值。

在不涉及到条件编译,并且只是使用固定值的前提下,我们都应该用const来替代#define。

热心网友 时间:2022-04-07 14:59

const 能指明类型,但是define不能,这能减少不必要的麻烦~~

热心网友 时间:2022-04-07 17:07

http://zhidao.baidu.com/question/63093694.html?an=0&si=1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女方早婚早育要离婚未满月孩子该怎么才能判给 家庭暴力,孩子未满月,孩子母亲要求离婚 孩子未满月是否可以离婚 孩子未满月可不可以离婚 新生儿未满月是否可离婚 固原斜视眼有哪些表现? 如何看待儿童斜视问题?固原 固原斜视儿童有必要做手术吗 HOJOJODO皇家金盾S1智能电子锁-详细介绍 皇家金盾智能锁怎么改密码 晚上睡觉鼻子不通气怎么办 鼻子整日不通气好几个星期了睡觉好难受怎么办? 鼻炎的人,晚上睡觉呼吸很不舒服,如何解决鼻子不透气? 晚上一睡觉两个鼻子都不通气怎么办,怎么才能让它通气 宝宝鼻子不通怎么睡觉舒服 该债转股协议是否有效 农民合作社增资扩股协议书 咳嗽吃冰糖炖梨有用吗 冰糖炖梨真能止咳吗 冰糖和梨一起煮熟可以止咳吗 冰糖炖梨到底能不能止咳 冰糖雪梨真的能治疗咳嗽么,? 我有张照片想消除上面的贴纸,我只有手机,拿美图秀秀消除笔做起来很 网上购买的QQ账号怎样才能防止被找回 qq账号如何防找回 买了个QQ号玩游戏 怎么防止找回 在交易猫上面买的 怎么样才能最大限度的防止买来的qq号被找回? 梦见有个老头在店里拿牙膏不给钱是什么意思? 周公解梦,梦到圆形盒子装的牙膏 我的CAD2010没有显示启动对话框这一选项,在工具系统中根本就没有。望指点。 “绞丝旁”加“发”念什么? 绞丝旁加发念什么 一个绞丝一个发念什么 sai有没有液化功能,就是类似ps里的? 一个绞丝旁一个管是什么字 我的笔记本电脑不能压缩文件 一个绞丝旁加一个官是什么字 绞丝旁加真字,是什么字? 为什么我的电脑是XP的,却没有自带压缩文件的功能?? 一个绞丝旁加一个“是”是什么字? 绞丝旁加的字怎么念? 绞丝旁+1个官员的官左右结构这个字怎么念 sai2模糊工具在哪 sai里的曲线工具为什么找不到?已经新建了钢笔图层,但是工具栏里没有 (绞丝旁一个处和一个口)这个字解释 绞丝旁在左,"处"在右的上面"口"在处的下面 绺的意思呢? 左边一个绞丝旁 右边上面一个处 底下一个口读什么 左边是绞丝旁 右边上面是个处下面是个口 那读什么字 加15个点,怎么计算?加15个点等于百分之几 9.5元加15个点怎么算 15个点的利润怎么计算原价