define宏定义和const
编译阶段
- define是在编译的预处理阶段起作用,类似于代码插入
- const是在编译、运行的时候起作用
安全性:
- define只做替换,不做类型检查和计算,也不求解,容易产生错误
- const常量有数据类型,编译器可以对其进行类型安全检查
内存占用
- define只是将宏名称进行替换,在内存中会产生多分相同的备份。
- const在程序运行中只有一份备份,且可以执行常量折叠,能将复杂的的表达式计算出结果放入常量表
- 宏替换发生在编译阶段之前,属于文本插入替换;const作用发生于编译过程中。
- 宏不检查类型;const会检查数据类型。
- 宏定义的数据没有分配内存空间,只是插入替换掉;const定义的变量只是值不能改变,但要分配内存空间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!