常量变量默认为内部链接语言特定或编译器特定功能吗?

时间:2013-06-14 11:49:31

标签: c++

我正在阅读Bruce Eckel- C ++简介。其中,在C ++中,通常不为常量变量分配存储,而是将它们的值保存在符号表中,除非EXTERN不与const一起使用或者不使用它们的地址。

所以我们可以说在C ++中,Const总是默认为Internal Linkage。但这个功能仍然取决于编译器是如何为C ++语言制作的。或者这总是如此?

1 个答案:

答案 0 :(得分:6)

const全局变量默认为内部链接。这由标准规定。

const全局必须如果你拿到他们的地址就分配了存储空间。这也是标准规定的。

仅仅因为它们有时会获得存储并不意味着编译器总是必须以这种方式使用它们。它仍然可以在它想要的地方替换它们,然后将不断折叠的表达式移除。