was set but never used

Gast #848130
Lesenswert?

SFamilie  sVater;
SFamilie  sMutter;
SFamilie  sKind;

switch (Status)
   {
     case Vater:
         Gewichtcount++;
         sVater.Gewicht = (float)Gewichtcount;
         break;

     case Mutter:
       Gewichtcount++;
       sMutter.Gewicht = (float)Gewichtcount;
       break;

   case Kind:
       Gewichtcount++;
       sKind.Gewicht = (float)Gewichtcount;
       break;

   default:
       break;
  }

Es soll einfach nur etwas hochgezählt werden.
Gast #848160
Lesenswert?

Dieser Code hat aber nun nichts, aber auch gar nichts mit dem zuvor
geposteten zu tun.

Aber auch hier fehlen die meisten Typ- und Variablendeklarationen, was
natürlich zu Fehlern führt. Wenn man sich die entsprechenden
Deklarationen ausdenkt und dazuschreibt, bringt der Compiler
(zumindest der GCC) keine einzige Warnung.

Poste doch mal ein Stück Code, das, wenn man es ohne Änderungen dem
Compiler übergibt, gleich an erster Stelle die von dir beklagte
Warnung ausgibt, und poste auch den genauen Wortlaut dieser Warnung
einschließlich der Zeilennummer, in der der Fehler auftritt.
Gast #848204
Lesenswert?

Das ist eben das Problem es wird nur gesetzt. Wenn ich schreibe
case Vater:
         Gewichtcount++;
         sVater.Gewicht = (float)Gewichtcount;
         sVater  = sVater;
break;

kommt kein Fehler. Wie umgehe ich das? das ist alles andere als schön?
Gast #848209
Lesenswert?

> sorry der ganze code ist zu lange

Muss ja nicht das ganze Programm sein. Aber wenigstens so viel davon,
dass

1. der Fehler (bzw. die Warnung) gemeldet wird und

2. vor diesem Fehler keine weiteren Fehlermeldungen ausgegeben
   werden.

Außerdem solltest du schreiben, welchen Compiler du benutzt.

Wenn obiges nicht möglich ist, bleibt dir nur, die Fehlermeldung
wörtlich zu nehmen und nach einer Variable xy zu suchen, die gesetzt,
aber nicht benutzt wurde. Viel Erfolg dabei.
#848224
Lesenswert?

never used wrote:
> Das ist eben das Problem es wird nur gesetzt. Wenn ich schreibe
> [...]
> kommt kein Fehler. Wie umgehe ich das? das ist alles andere als schön?

Einmal sage ich es noch, dann gebe ich es auf:
Du den Code einfach weglassen. Er ist überflüssig und hat auf das 
Programmergebnis keinen Einfluss. Der Compiler macht dich auf diesen 
überflüssigen Code aufmerksam und das ist auch gut so.
#848232
Lesenswert?

Lass mich auch mal raten:
Dein Variablen sVater, sMutter, sKind sind lokale Variablen
in einer Funktion. Du änderst zwar die lokalen Variablen und
da sie danach beim Funktionsreturn wieder verschwinden, macht
dich der Compiler darauf aufmerksam dass du eine sinnlose
Zuweisung gemacht hast.

Daher nochmal der Aufruf: Wenn du Hilfe brauchst, dann poste
den Code so wie du ihn compilierst. Du kannst den Code ja
ruhig auch abspecken um ihn klein genug zu kriegen wenn du
der Ansicht bist, du willst nicht soviel posten.
Gast #848395
Lesenswert?

Oder mal konkret:

Hier weist du der (lokalen) Variablen "sKind.Gewicht" einen Wert zu:

  sKind.Gewicht = (float)Gewichtcount;

und anschliessend wird die Variable "sKind.Gewicht" nicht mehr 
verwendet. Wozu also die Zuweisung? Und genau das sagt/fragt der 
Compiler mit der Warnung.

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