Forum: PC-Programmierung was set but never used


von never used (Gast)


Lesenswert?

folgendes Problem:

er bringt mir den Fehler: " variable xy was set but never used. Jedoch 
wird die Variable verwendet und wenn ich die initialisierung der 
Variable lösche kommt ein Error, dass die Variable nicht definiert 
wurde.

? HELP?

von Thomas L. (tom)


Lesenswert?

Poste mal den Code der Funktion wo das auftritt. So kann man nicht 
wirklich was dazu sagen. Ich schätze mal es handelt sich dabei auch um 
eine Warning, nicht um einen Error?

von never used (Gast)


Lesenswert?

Familienbuch *hffamily;
   Familienbuch *hffamily1;

   hffamily = (14 *)harry1;
   hffamily1 = (15 *)harry2;

von yalu (Gast)


Lesenswert?

Was soll denn diese Zeile

>     hffamily = (14 *)harry1;

bedeuten? In C oder C++ ist das keine korrekte Syntax.

von never used (Gast)


Lesenswert?

14 ist eine Variable

von Thomas L. (tom)


Lesenswert?

Das erste Zeichen einer Variable muss ein Buchstabe sein.

von never used (Gast)


Lesenswert?

ist egal was da steht da es nicht der Originalcode ist. Schreiben wir 
statt 14. Variable14 hin.

von Thomas L. (tom)


Lesenswert?

Sorry, aber das ist mir definitiv zu mühsam.

von Frank W. (Firma: DB1FW) (frankw) Benutzerseite


Lesenswert?

Entweder Du zeigst uns welches Problem du wirklich hast ( mit Code )
oder Du lässt es bleiben. Deine Entscheidung.
Wenn Du Hilfe willst, dann musst Du schon sagen um was es geht ansonsten 
musst Du's halt selbst suchen.

Das Forum hilft gerne - aber zaubern, raten, Kristallkugeln befragen - 
ist nicht !

von duselbaer (Gast)


Lesenswert?

Ich kann Deinen Compiler schon verstehen. Beide Zeiger werden gesetzt 
und nicht benutzt...

von never used (Gast)


Lesenswert?

wie muss ich dann die Pointer initialisierung das ich diese so wie oben 
angeben verwenden kann.

von never used (Gast)


Lesenswert?

okay der Code kommt moment

von never used (Gast)


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.

von duselbaer (Gast)


Lesenswert?

Was hat der gepostete Code mit deinem Code von oben zu zun? Ich sehe 
keinen Zeiger..., nix?

Übrigens s[Vater|Mutter|Kind].Gewicht wird z.B. auch nur gesetzt, oder 
bin ich blind?

von never used (Gast)


Lesenswert?

das ist ein anderer Code der die gleiche Warning erzeugt.

von horst (Gast)


Lesenswert?

poste deinen originalcode oder lass es tss..

von never used (Gast)


Lesenswert?

sorry das ist der OrignalCode

von yalu (Gast)


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.

von never used (Gast)


Lesenswert?

sorry der ganze code ist zu lange

ein KOllege meinte es könnte daran liegen das die Variable nicht 
initialiserit ist?=+

von Detlev T. (detlevt)


Lesenswert?

Ich verstehe die Diskussion hier nicht. Inhalte der (lokalen) Variablen 
sVater, sMutter und sKind werden zwar gesetzt, das aber später nicht 
mehr verwendet. Der Code ist also überflüssig. Darauf macht der Compiler 
ganz korrekt aufmerksam.

Wo ist das Problem?

von never used (Gast)


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?

von Εrnst B. (ernst)


Lesenswert?

Du umgehst es indem du einfach dein Programm weiterschreibst, so dass 
sVater.Gewicht eben irgendwann mal (lesend) verwendet wird.

Wenn du den Compiler auf ein halbfertiges Programm loslässt, gibts halt 
solche Warnungen.

von yalu (Gast)


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.

von jl (Gast)


Lesenswert?

tja, nutze die Variable einfach (irgendwo) in deinem Programmm.

von Detlev T. (detlevt)


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.

von Karl H. (kbuchegg)


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.

von tastendrücker (Gast)


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.

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
Noch kein Account? Hier anmelden.