-Wuninitialized geht nicht

OP #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?
OP #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.
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.