www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik warning: defined but not used


Autor: ein Jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinmoin,

bei mir tritt die folgende Warnung auf: VARIABLENNAME defined but not 
used, die ich gerne wegbekommen möchte.

in der test.h habe ich static uint8_t VARIABLENNAME definiert,
in der test.c wird diese Variable verändert, aber ebenso in einer 
anderen test2.c Datei.
Nun schmeißt mir der compiler die (nicht ganz richtige) Warnung defined 
but not used raus.
Wenn ich die Variable jedoch in der test.c deklariere, wird sie in der 
test2.c nicht gefunden.

Wie kann ich die Warnung loswerden? (funktionieren tut es auch so, aber 
ein warnungsfreies kompilieren wär mir lieber, da ich das projekt auch 
abgeben möchte.)

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Globale Variablen immer in einer C-Datei, nie in einer H-Datei 
definieren. Soll sie global sein, laß das static weg und definier sie in 
der anderen C-Datei als extern.

Die Definition in einer H-Datei als static bewirkt, daß jede C-Datei, 
die dieses Headerfile einbindet, ihre eigene (!) Variable mit dem Namen 
bekommt. Warum dein Programm funktioniert hat: Keine Ahnung. Glück?

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du DEFINIERST die Variable in einer .c Datei.
Im Header wird sie als Referenz zur Benutzung in anderen .c Modulen
hingegen DEKLARIERT.

Das STATIC hat hier nichts verloren, wenn du die Variable in
mehr als einem Modul verwenden willst.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, zu langsam... ;-)

test.c:
int variable1;
void foo()
{
  variable1--;
}
test.h:
extern int variable1;
test2.c:
#include "test.h"
void bar()
{
  variable1++;
}

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.