c++ - 混合外部和常量

标签 c++ c constants scope extern

我可以将 extern 和 const 混合为 extern const 吗?如果是,const 限定符是否只在它声明的范围内强加它的统治,还是应该完全匹配它声明的翻译单元的声明? IE。我可以声明说 extern const int i; 即使实际 i 不是 const,反之亦然?

最佳答案

  • 是的,您可以一起使用它们。
  • 是的,它应该与实际声明它的翻译单元中的声明完全匹配。当然,除非你参与了Underhanded C Programming Contest。 :-)

通常的模式是:

  • file.h:
    extern const int a_global_var;
  • file.c:
    #include "file.h"
    const int a_global_var =/* 一些 const 表达式 */;

编辑:合并了 legends2k 的评论。谢谢。

关于c++ - 混合外部和常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190919/

相关文章:

c++ - boost 、互斥概念

c - 来自用户空间的 sysfs 文件中的 poll() 和来自内核空间的 sysfs_notify() 不会一起工作

c - 为什么在本地声明常量变量值会发生变化?

excel - 在 Excel 中,COUNTIF() 不适用于常量定义的 string[]

c++ - 对构造函数的调用不能出现在常量表达式中

c++ - (C++) 如何将 STL 列表声明为外部列表?

c++ - 我可以保证以负偏移访问指针吗?

c++ - OpenCV - 在同一个程序中收集 featureDetectors 和 descriptorDetector

C - 检测到堆损坏

c++ - 如何在 C 宏中使用#if,#else,#endif...