有什么理由再将extern用于常量吗?

在我早期,我经常有这样的结构:

// .h
extern const int MY_CONST;

// .cpp
const int MY_CONST = 5;

这是否真的被以下内容完全取代:

// .h
inline const int MY_CONST = 5;

现在有什么理由使用第一个变体吗?

请注意,后者具有更高的可读性,因为该值在头文件中可见(自记录)。

回答

当然。出于同样的原因,人们可能希望在单独的翻译单元中定义任何内容。例如,相同的推理适用于函数定义。

例如,一个原因可能是不需要根据变量重新编译所有内容,以防您想更改初始化程序。

另一个原因可能是初始化很复杂,并且涉及调用您希望隐藏的函数,因为您可能不希望依赖项是公开的。


以上是有什么理由再将extern用于常量吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>