首页 >后端开发 >C++ >为什么 C 的 `const` 对象有内部链接,而 C 的没有?

为什么 C 的 `const` 对象有内部链接,而 C 的没有?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-01 01:48:141028浏览

Why Do C  's `const` Objects Have Internal Linkage While C's Don't?

C 中 Const 隐含的内部链接与 C 不同

在 C 中,命名空间内声明的 const 对象具有内部链接,这与C的做法。此行为源于 const 对象在 C 中作为编译时常量的潜在用途。

C 11 标准 (C.1.2) 的附录 C 解释了此更改背后的基本原理。该规则鼓励程序员显式初始化 const 对象,提高一致性并允许将它们包含在跨编译单元共享的头文件中。

例如,考虑以下示例:

const int var_a = 1;
int var_b = 1;

编译此使用 g -c test.cpp 的代码仅导出变量 var_b。这是因为 const 变量不能在外部使用,与 C 不同。

以上是为什么 C 的 `const` 对象有内部链接,而 C 的没有?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn