Hallo,
ich hab grad ein C-Problemchen gelöst und wundere mich das Verhalten des Compilers:

Ich habe vergessen eine lokale Variable zu initialisieren bevor ich sie abfrage (jaja, ich schäme mich ja auch dafür)
Aber hätte der Compiler das nicht gleich mit einem "Warning" tadeln müssen ?

Code:
void testfunc(void)
{ int time;

  while (1)
  {
    if (time > 1) ;  
  }
}
Das ist jetzt sicherlich kein Sinnvoller code, daß soll nur das Problem aufdecken.
Ich habe den Code immer weiter gekürzt, bis dies übrig blieb.

Wenn ich jedoch folgendes schreibe, merkt der Compiler sofort, daß ich vergessen habe "time" zu initialisieren
und warnt korrekterweise mit folgender Meldung: variable "time" is used before its value is set.

Code:
void testfunc(void)
{ int time;

  while (1)
    if (time > 1) ;  

}
Wo ist denn da der Unterschied ? oder was habe ich noch nicht richtig verstanden ?
Warum gibt es also in oberen Version keinen Warning ? während dessen in der unteren Version schon ?

Danke vorab für Eure Hilfe
Siro