-
define生效于编译预处理阶段,const生效于编译阶段
-
define只是简单的字符串替换,在编译预处理阶段将所有用到宏的地方进行字符串替换,没有进行数据类型检查;const有数据类型,编译器要对其进行类型检查
-
define不分配内存,而const在静态区分配内存,因此define没有地址,不可以使用指针指向,const有地址可以使用指针指向
-
define不分配内存,只是将宏名进行替换,有多少次替换,内存中就有多少次拷贝(也就是给拷贝分配内存),内存消耗过大;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 让容器管理更轻松!