2015-01-13 2 views
-3

Следующий код дает мне ошибку GCC для отсутствующих фигурных скобок, но независимо от того, какие комбинации я пытаюсь (включая только одно значение 0), он не разрешается. Может ли кто-нибудь дать представление?C Массив инициализации структуры

#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 }, 
}; 
+2

Это компилируется на ideone со стандартной настройкой C99 ([demo] (http://ideone.com/0vuMlp)). – dasblinkenlight

+0

Пожалуйста, сообщите точное сообщение об ошибке и gcc flags. – 2501

+0

Ошибка: отсутствующие фигурные скобки вокруг инициализатора [-Werror = отсутствующие фигурные скобки] Я понимаю, что это повышенное предупреждение ... Я анальный ретентивный. – SeaNick

ответ

2

Вот почему вы не ярлык вопрос с вещами вы делаете предположения о:

Фактическая структура Я использую был:

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

Так пропускал брекеты по всему другие массивы, даже если они были единым элементом ... Не стесняйтесь понижать меня за мою слабость.

Смежные вопросы