Hallo zusammen,
Gibt es eine Möglichkeit, mit der gcc warnt, wenn ein struct wie im
Beispiel nicht vollständig initialisiert, aber benutzt wird? Dieser
Fehler hat mich gerade einiges an Zeit gekostet.
1 | #include <stdio.h>
|
2 |
|
3 | typedef struct
|
4 | {
|
5 | int a;
|
6 | int b;
|
7 | int c;
|
8 | } tFoo;
|
9 |
|
10 | void doStuff(tFoo* p)
|
11 | {
|
12 | printf("%d, %d, %d\n", p->a, p->b, p->c);
|
13 | }
|
14 |
|
15 | int main(void)
|
16 | {
|
17 | tFoo x;
|
18 | x.a = 0;
|
19 | x.b = 1;
|
20 | // x.c ist nicht initialisiert.
|
21 | doStuff(&x);
|
22 | return 0;
|
23 | }
|
Ideal wäre, wenn alles außer
1 |
|
2 | tFoo x; x.a = 0; x.b = 0; x.c = 0;
|
oder
eine Warnung produziert. "gcc -Wall -Wextra -Wuninitialized" tut das
leider nicht, passendere Optionen habe ich in der manpage nicht
gefunden.
Grüße,
Tom