例如,在嵌入式编程中,由于以下原因,#define GLOBAL_CONSTANT 42首选const int GLOBAL_CONSTANT = 42;:
const 不仅需要闪存中的存储位置,而且编译器会在程序开头生成额外的代码来复制它.反对使用的所有这些优点,使用#define的主要优点是const什么?在非μC环境中,内存通常不是一个大问题,并且const因为它可以在本地使用而有用,但是全局常量呢?或者答案只是"我们永远不应该使用全局常量"?
编辑:
这些例子可能引起了一些误解,所以我必须声明它们在C中.如果C编译器为这两者生成了完全相同的代码,我认为这将是一个错误,而不是一个优化.
我只是将问题扩展到C++而不考虑它,希望获得新的见解,但我很清楚,在面向对象的环境中,全局常量的空间很小,无论它们是宏还是consts.
| 归档时间: |
|
| 查看次数: |
3544 次 |
| 最近记录: |