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