-Wuninitialized geht nicht

#3248101
Lesenswert?

Hallo,

leider kann ich unter raspbian mit codeblocks und gcc 4.6.3 diese 
Warnungen nicht aktivieren.

Meine Suche im inet brachte das Ergebnis, dass man entweder -O oder die 
anderen Optimierungen nutzen muss. Bei mir geht es trotzdem nicht.

Hat jemand einen Hinweis, wie ich ihn doch dazu bewegen kann?

Benutzte Parameter:

-g -ansi -Wall -pedantic -Wuninitialized und eben eine Optmierungsstufe
Gast #3248183
Lesenswert?

Gibts Ne schrieb:
> Das globale automatisch initialisiert werden, hatte ich hier im Forum
> schon gelesen.
>
> Aber lokale Variablen müsste er ja erkennen, also sowohl in Funktionen
> als auch in der main Funktion.
1
void main(void)
2
{
3
    int a;
4
    a++;
5
}

$ gcc -Wall -Wno-main x.c
x.c: In function ‘main’:
x.c:4: warning: ‘a’ is used uninitialized in this function

Ungefähr so?
#3248224
Lesenswert?

Hm, vielleicht liegt das Ganze doch an einem Missverständnis.

Prüft der Compiler, ob die Initialisierung am Anfang bei der Deklaration 
erfolgt, oder prüft er nur generell, ob durch irgendwelche Operationen 
vor einer Rechenoperation mit dieser Variable dieser ein Wert zugewiesen 
wurde?

Also kann die eigentliche erste definierte Wertzuweisung viel später 
mitten in der Funktion/im Programm passieren oder auch in fremden 
Funktionen, die ich eingebunden habe und nutze?
Gast #3248228
Lesenswert?

Gibts Ne schrieb:

> Also kann die eigentliche erste definierte Wertzuweisung viel später
> mitten in der Funktion/im Programm passieren

Ja

> oder auch in fremden
> Funktionen, die ich eingebunden habe und nutze?

Erzähl - oder besser zeig - mal wie innerhalb einer 'fremden' Funktion 
B() eine lokale Variable einer Funktion A() initialisiert werden soll.
#3248237
Lesenswert?

War nicht so konkret ausgedrückt, ich meine die fremde Funktion schreibt 
z. B. in mein lokales char array, welches in den Parametern der Funktion 
übergeben wird.


Gut damit wäre das geklärt, deswegen wird bei mir kein Warnung 
angezeigt. Ich nutze alle Variablen korrekt und dachte, es hilft 
Variablen grundsätzlich zu initialisieren.

Meine Annahme war, das Variablen grundsätzlich direkt nach ihrer 
Deklaration initialisiert werden müssen/sollen.
Gast #3248378
Lesenswert?

> Meine Annahme war, das Variablen grundsätzlich direkt nach ihrer
> Deklaration initialisiert werden müssen/sollen.

im Gegenteil. Variablen um des Initialisierens willen auf einen nicht 
besonders sinnvollen Dummy-Wert zu initialisieren, um dann hoffentlich 
vor dem Lesen noch den richtigen reinzuschreiben, halte zumindest ich 
persönlich für schlechten Stil.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren