c – const通常使用比#define更多或更少的内存吗?
发布时间:2020-12-16 09:55:42 所属栏目:百科 来源:网络整理
导读:我理解它们是如何工作的,但我很好奇是否其中一个实际上更有效地记忆. #define似乎一直在嵌入式C世界中使用,但我想知道它是否在大多数情况下在const上实际上是合理的. 如果一个比另一个更有效,有没有人有办法测试并显示这个? 解决方法 让#define放在一边,因
我理解它们是如何工作的,但我很好奇是否其中一个实际上更有效地记忆. #define似乎一直在嵌入式C世界中使用,但我想知道它是否在大多数情况下在const上实际上是合理的.
如果一个比另一个更有效,有没有人有办法测试并显示这个? 解决方法
让#define放在一边,因为它在你的程序中并不存在.预编译器会在编译器发现它们曾经存在之前获取宏并扩展它们.
以下来源: #define X 42 printf("%d",X); 实际上是以下程序: printf("%d",42); 所以你要问的是,这需要更多或更少的内存: const int x = 42; printf("%d",x); 这是一个我们无法完全回答的问题. 一方面,值42需要在你的程序中存在,否则执行它的计算机将不知道该怎么做. 另一方面,它既可以在程序中硬编码,也可以优化,也可以在运行时安装到内存中再次拉出. 无论哪种方式,它需要32位(可能不是32位),并且如何将它引入程序并不重要. 任何进一步的分析都取决于您正在使用的价值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |