【发布时间】:2012-03-28 22:19:31
【问题描述】:
好的,我希望将一组内存地址定义为 .h 文件中的常量,该文件由一堆 .c 文件使用(我们使用的是 C,而不是 C++)。我希望能够看到变量的 name 而不仅仅是在调试器中看到十六进制地址......所以我想将我目前拥有的#defines 转换为范围内全局的常量.问题是,如果我这样定义它们:
const short int SOME_ADDRESS = 0x0010
然后我得到了可怕的“多重声明”错误,因为我有多个使用同一个 .h 的 .c 文件。我想使用枚举,但这不起作用,因为它默认为整数类型(在我的系统上是 16 位......我需要更好地控制类型)。
我想过将所有地址放在一个结构中......但我无法(据我所知)在头文件中设置结构实例的默认值(我不想假设一个特定的 .c 文件首先使用该结构并在其他地方填充它。我真的很想在 .h 文件中定义常量)
刚开始的时候看起来很简单,但我没有看到在头文件中定义全局可用的短整型常量的好方法……有人知道这样做的方法吗?
谢谢!
【问题讨论】:
标签: c variables header constants global