Kir*_*tly 13 c variables global header constants
好吧,我希望将一组内存地址定义为.h文件中的常量,这些常量由一堆.c文件使用(我们在C中,而不是C++).我希望能够看到变量的名称,而不是只看到调试器中的十六进制地址......所以我想将我目前拥有的#defines转换为全局范围的常量.问题是,如果我这样定义它们:
const short int SOME_ADDRESS = 0x0010
Run Code Online (Sandbox Code Playgroud)
然后我得到了可怕的"多声明"错误,因为我有多个.c文件使用相同的.h.我想使用枚举,但这不起作用,因为它默认为整数(在我的系统上是16位......我需要对类型有更好的控制).
我想把所有的地址都放在一个结构中...但我没有办法(我知道)在头文件中设置结构实例的默认值(我不想假设一个特定的.c文件首先使用结构并在其他地方填充它.我真的想在.h文件中定义常量)
我开始时看起来很简单,但是我没有看到在头文件中定义全局可用的short int常量的好方法......有谁知道这样做的方法?
谢谢!
hmj*_*mjd 28
使用以下方法声明头文件中的常量extern:
extern const short int SOME_ADDRESS;
Run Code Online (Sandbox Code Playgroud)
然后在任何但只有一个.c文件中提供定义:
const short int SOME_ADDRESS = 0x0010;
Run Code Online (Sandbox Code Playgroud)