在开发时更改const值而不重新编译所有内容

Zak*_*Zak 3 c++ settings file-io

现在我有大量存储在常量中的魔法数字.这些在每个构建之间进行了大量调整.例如const int numAPPLES = 25

现在,每个都定义在每个相关类头的顶部.但有时他们需要分享,而且我必须要么:

  1. 复制定义; 并冒着相互冲突的风险
  2. 包括额外的标题(这是我做过的)

我以前把它们都放在一个options.h很好的因为我可以一起看到它们但是改变一个数字显然会触发一个完整的重建.

如果重要我正在使用VS 2010.

允许更改这些数字的最佳方法是什么?我想知道如何将.txt文件添加到我的VS项目中,然后从那里提取变量.

数据类型(仅限现在)char,和int

我也不希望只有访问它们的整个库依赖项.但是一个简单的推荐课程; 或者建立自己的方式会很棒.

谢谢!


编辑:这对你们看起来不错吗?:http://www.codeproject.com/KB/cpp/IniReader.aspx

Bo *_*son 9

如果在编译时需要常量,则必须在更改时重新编译.

如果您只需要运行时的值,则可以将它们声明为

extern const int numAPPLES;
Run Code Online (Sandbox Code Playgroud)

并将实际值放在单独的.cpp文件中.更改值时,只需重新编译该文件即可.

  • 请注意,这将使您只能在运行时声明和使用常量.除了实际定义值的转换单元之外,`extern`常量不能用作任何转换单元中的编译时常量. (2认同)