如何在结构中声明带有const int项的数组

时间:2017-08-03 13:51:44

标签: c struct global-variables

我试图在里面创建一个带有数组的结构。希望的数组大小应该在编译时设置。这是它的硬编码但使用变量,所以我可以在代码中轻松更改它。问题是当我在结构定义之前的头文件中使用const int时,我遇到了链接器错误。这是我的代码:

来自头文件:

const int t_Module_qInternalParams =64;

typedef struct Module{
    double internalParams[t_Module_qInternalParams];
} t_Module;

1 个答案:

答案 0 :(得分:3)

此:

const int t_Module_qInternalParams = 64;

常量,因为对象在初始化后无法修改,但它仍然是一个变量。特别是,t_Module_qInternalParams 编译时常量,正如声明者所要求的那样。

一个简单的解决方案是改为使用预处理器宏:

#define MODULE_INTERNALPARAMS 64

这只是在编译阶段开始之前扩展到64 ,当然,64 编译时常量