下面的代码给了我一个GCC错误,错过了大括号,但无论我尝试哪种组合(包括只有一个0的值),它都无法解决。任何人都可以提供一些见解吗?
#define NUM_TABLE_ELEMENTS 1
typedef struct parameter_t
{
struct
{
uint8_t A : 1;
uint8_t B : 1;
uint8_t C : 1;
uint8_t D : 5;
} W;
uint8_t X;
uint8_t Y;
uint8_t Z;
} parameter_t;
parameter_t MyTable[NUM_TABLE_ELEMENTS] =
{
{ { 1, 1, 1, 0 }, 0, 0, 0 },
};
答案 0 :(得分:2)
这就是为什么你不用你做出假设的事情来简化问题的原因:
我使用的ACTUAL结构是:
typedef struct parameter_t
{
struct
{
uint8_t A : 1;
uint8_t B : 1;
uint8_t C : 1;
uint8_t D : 5;
} W;
uint8_t X;
uint8_t Y[1];
uint8_t Z[1];
} parameter_t;
parameter_t MyTable[NUM_TABLE_ELEMENTS] =
{
{ { 1, 1, 1, 0 }, 0, 0, 0 },
};
所以它在其他阵列周围缺少括号,即使它们是单个元素......随意为我的懒散而投降。