Ausschnitt 1 mit auskommentierter union lässt sich initialisieren.
Ausschnitt 2 mit union ergibt das Warnung:
1 | Warning missing braces around initializer [-Wmissing-braces]
|
Wie muss Ausschnitt 2 korrekt geklammert werden?
Ausschnitt 1:
1 | struct busobject
|
2 | {
|
3 | uint8_t status1;
|
4 | uint8_t Status2;
|
5 | uint8_t name[maxname + 1];
|
6 | // union
|
7 | // {
|
8 | uint16_t address;
|
9 | // uint16_t value;
|
10 | // };
|
11 | uint8_t size;
|
12 | };
|
13 |
|
14 | struct busobject obus[2]=
|
15 | {
|
16 | {101, 200, "Relais 1", 0x0025, 0x01},
|
17 | {107, 202, "Temp. 02", 0x0025, 0x01}
|
18 | };
|
Ausschnitt 2:
1 | struct busobject
|
2 | {
|
3 | uint8_t status1;
|
4 | uint8_t Status2;
|
5 | uint8_t name[maxname + 1];
|
6 | union
|
7 | {
|
8 | uint16_t address;
|
9 | uint16_t value;
|
10 | };
|
11 | uint8_t size;
|
12 | };
|
13 |
|
14 | struct busobject obus[2]=
|
15 | {
|
16 | {101, 200, "Relais 1", 0x0025, 0x01},
|
17 | {107, 202, "Temp. 02", 0x0025, 0x01}
|
18 | };
|