我试图在里面创建一个带有数组的结构。希望的数组大小应该在编译时设置。这是它的硬编码但使用变量,所以我可以在代码中轻松更改它。问题是当我在结构定义之前的头文件中使用const int时,我遇到了链接器错误。这是我的代码:
来自头文件:
const int t_Module_qInternalParams =64;
typedef struct Module{
double internalParams[t_Module_qInternalParams];
} t_Module;
答案 0 :(得分:3)
此:
const int t_Module_qInternalParams = 64;
是常量,因为对象在初始化后无法修改,但它仍然是一个变量。特别是,t_Module_qInternalParams
不 编译时常量,正如声明者所要求的那样。
一个简单的解决方案是改为使用预处理器宏:
#define MODULE_INTERNALPARAMS 64
这只是在编译阶段开始之前扩展到64
,当然,64
是 编译时常量