【发布时间】:2011-09-02 15:27:38
【问题描述】:
考虑使用宏、枚举常量和常量对象的符号常量。 在宏中,作用域是全局的,不能局限于局部作用域,这是一个主要缺点。 枚举常量不能用于整数以外的情况,枚举常量不能用float或long表示。 const 对象可以具有本地范围,可以用不同的数据类型表示。 但是在 c 中声明“int const a”或“const int a”会使值成为常量,并且在 c 中不允许使用 int buffer[a]。但在 c++ 中允许使用 int buffer[a],因为它需要“const a” " 仅作为编译器常量。
尽管提到了这些缺点,但它们中的大多数通常更喜欢将符号常量定义为枚举常量而不是 const 对象。
我无法理解下面的说法,即 const 对象会导致性能下降。它是如何导致的。请帮助我理解..
const 对象的问题是它们可能会导致性能 枚举常量避免的惩罚。
【问题讨论】:
-
你在哪里读到的?
-
我相信这句话来自eetimes.com/discussion/programming-pointers/4023858/…(见最后一段)
-
我是从本站embedded.com/showArticle.jhtml?articleID=9900352的文章中得到的
-
可能是因为,除非进行优化,
constobjects 需要内存访问和间接寻址,而不是使用枚举或符号常量直接编码到操作码本身的值。 -
我不明白为什么任何合理的编译器都不会内联
const int。
标签: c