C数组结构初始化

时间:2015-01-13 21:08:06

标签: c

下面的代码给了我一个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 },
};

1 个答案:

答案 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 },
};

所以它在其他阵列周围缺少括号,即使它们是单个元素......随意为我的懒散而投降。