www.mikrocontroller.net

Forum: PC-Programmierung was set but never used


Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Familienbuch *hffamily;
   Familienbuch *hffamily1;

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

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll denn diese Zeile

>     hffamily = (14 *)harry1;

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

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
14 ist eine Variable

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erste Zeichen einer Variable muss ein Buchstabe sein.

Autor: never used (Gast)
Datum:

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

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, aber das ist mir definitiv zu mühsam.

Autor: Frank W. (frankw) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 !

Autor: duselbaer (Gast)
Datum:

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

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie muss ich dann die Pointer initialisierung das ich diese so wie oben 
angeben verwenden kann.

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay der Code kommt moment

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: duselbaer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist ein anderer Code der die gleiche Warning erzeugt.

Autor: horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
poste deinen originalcode oder lass es tss..

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry das ist der OrignalCode

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry der ganze code ist zu lange

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

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: never used (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: jl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja, nutze die Variable einfach (irgendwo) in deinem Programmm.

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.