gcc meldet Fehler bei printf eines Arrays

Gast #285280
Lesenswert?
• ▲
▼
Hallo da draußen,

mein gcc meldet beim Compilieren:

../../main.h:23: warning: 'sw_version' defined but not used

Die Variable ist in main.h als Array definiert:

static uint8_t sw_version[] = "0.9" ;

Ich verwende die Variable sw_version aber folgendermaßen:

...
printf("SW-Version: ") ;
printf(" %s ", sw_version ) ;
printf("   compiled   "  __DATE__"    " _TIME_ "\r\n") ;
…

Das Programm läuft einwandfrei, aber da muss noch ein Fehler sein.
Welcher ?

Danke für die Hilfe !
Gast #285282
Lesenswert?
• ▲
▼
Hallo Jörg,

danke für Deine prompte Antwort, aber...

ich habe in main.h alle "zentralen" Konstanten, wie Takt, Bitrate,
Entprellzeit etc. stehen und möchte hier auch eine Versionsnummer als
string mitführen, die mit printf ausgegeben werden soll.

Wie macht man so was denn dann ?

Schönen WE

Otto
Gast #285284
Lesenswert?
• ▲
▼
Das "macht man" folgendermassen:*

a) Die Variablendeklaration kommt in das *.c File
z.B:

volatile int8_t enc_delta=0;       // -128 ... 127

Damit wird die Variable physikalisch angelegt und kann auch
initialisiert werden.

b) Alle globalen Variablen, die nach aussen sichtbar sein müssen kommen
ins Header file *.h
z.B:

extern volatile int8_t enc_delta;       // -128 ... 127

Damit wird dem Compiler nur der Typ bekannt gegeben (extern). Der
Linker sorgt dann für die Verbindung mit der physikalisch angelegten
Variable. Hier ist eine Initialisierung Unsinn und daher falsch.

In C sind globale Variablen per default static. Das static ist also
nicht notwendig (In C++ ist das anders)


* natürlich gibt es wie immer viele Möglichkeiten, aber die hier ist
üblich

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.