Hallo, ich bekomme beim Kompilieren diese Warnung, er kompiliert zwar, aber da mein programm nicht funktioniert würde ich gern wissen was das genau bedeutet? ../Pr_test.c:265: warning: 'PWM_Wert1' may be used uninitialized in this function so habe ich es definiert: char PWM_Wert1; Ausschnitt aus dem Code: switch(PWM_Strom_Menu) // Einstellungen für die PWM treffen { case 1: // für weniger als 1000mAh PWM_Wert1 = 50; if (Ladefunktion_Menu==2) // anderer PWM_Wert bei Schnellladung PWM_Wert1 = 100; break; case 2: // für 1000mAh bis 1500mAh PWM_Wert1 = 65; if (Ladefunktion_Menu==2) // anderer PWM_Wert bei Schnellladung PWM_Wert1 = 130; break; case 3: // für 1500mAh bis 2000mAh PWM_Wert1 = 80; if (Ladefunktion_Menu==2) // anderer PWM_Wert bei Schnellladung PWM_Wert1 = 160; break; case 4: // für mehr als 2000mAh PWM_Wert1 = 100; if (Ladefunktion_Menu==2) // anderer PWM_Wert bei Schnellladung PWM_Wert1 = 200; break; } return PWM_Wert1; // Rückgabewert
Der sagt dir nur dass wenn dein PWM_Strom_Menu keinen der Fälle erwischt, ein undefinierter Wert zurückgegeben wird. Abhilfe schafft heir ein default: PWM_Wert1 = 0; //oder anderer ungefährlicher Wert das kommt unten nach dem letzten break in die switch Klammern rein :-)
Wenn PWM_Strom_Menu weder 1, 2, 3 noch 4 ist, erhält PWM_Wert1 keinen Wert zugewiesen und wäre demnach undefiniert. Das hat der Compiler erkannt und gibt die Warnung aus.
zu faul zum anmelden schrieb: > Wenn PWM_Strom_Menu weder 1, 2, 3 noch 4 ist, erhält PWM_Wert1 keinen > Wert zugewiesen und wäre demnach undefiniert. Das hat der Compiler > erkannt und gibt die Warnung aus. Du hast Recht in diesem Fall: char foo(void) { char PWM_Wert1; // Riesenswitch hier... return PWM_Wert1; } In diesem Fall würde definiert 0 zurückgegeben (solange keine andere Funktion PWM_Wert1 angepackt hat). char PWM_Wert1; char foo(void) { // Riesenswitch hier... return PWM_Wert1; } Allerdings würde im 2. Fall IMHO auch keine Warnung geworfen. Insgesamt ist es dann ein Thema, das man unter Initialisierung von lokalen (keine) und globalen (auf Null) Variablen im C-Manual findet. So gesehen ist es schade, dass Dirk keinen kompilierfähigen Code sondern nur einen Codefetzen gezeigt hat.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.