【发布时间】:2010-09-26 04:40:30
【问题描述】:
我有一个 C 项目,其中所有代码都组织在 *.c/*.h 文件对中,我需要在一个文件中定义一个常量值,但是它也将在其他文件中使用。我应该如何声明和定义这个值?
应该是*.h 文件中的static const ... 吗?作为 *.h 文件中的 extern const ... 并在 *.c 文件中定义?如果该值不是原始数据类型(int、double 等),而是 char * 或 struct,这有什么关系? (虽然在我的情况下是double。)
在*.h 文件中定义东西通常看起来不是一个好主意;应该在*.h 文件中声明事物,但在*.c 文件中定义它们。但是,extern const ... 方法似乎效率低下,因为编译器无法内联该值,而是必须始终通过其地址访问它。
我想这个问题的本质是:是否应该在 C 中的 *.h 文件中定义 static const ... 值,以便在多个地方使用它们?
【问题讨论】:
标签: c constants header-files code-organization