4

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

所以我们可以说在 C++ 中,Const 总是默认为内部链接。但这个功能仍然取决于编译器是如何为 C++ 语言制作的。或者这将永远是真的?

4

1 回答 1

6

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

const如果您获取全局变量的地址,则必须分配存储空间。这也是标准中规定的。

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

于 2013-06-14T11:53:02.723 回答