c++ - 为什么 const 在 C++ 中暗示内部链接,而在 C 中却没有?

在 C 和 C++ 中,术语静态有多种含义(它可以控制链接和存储)您必须阅读 Stroustrup 的 D&E 以了解他的基本原理 - 但是当您在命名空间范围内声明一个变量为 const 时,它会自动具有内部链接 - 而在 C 中,您必须将其声明为静态以强制它具有内部链接。

当然在 C++ 中,使用静态来控制链接已被弃用,匿名命名空间可用于模拟 C++ 中的内部链接。

C++ 中的 const 变量应该替换预处理器常量——因为预处理器常量只在定义它们的文件中可见,同样,const 自动使变量只在定义它的文件中可见。