www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tricore + Tasking Compiler / Struct-Problem


Autor: Simon F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite mit einem Tasking-Compiler 2.5 r2 für den Tricore. Ich bin 
gerade dabei an einer scheinbar einfachen struct-Deklarierung zu 
verzweifeln.

[c]
typedef struct {
uint8_t a;
uint8_t b;
uint16_t c;
} d_type ;
[\c]

d_type wird im späteren Programmablauf als Rückgabetyp einer Funktion 
und zur Definition zweier Strukturen des Typs d_type verwendet. Der 
Compiler bringt allerdings beim Build folgende Fehlermeldung:

ctc E289: ["..\header.h" 22/3] "d_type" redeclared with a different type
ctc I802: ["..\header.h" 22/3] previous declaration of "d_type"

Die Position 22/3 ist dabei vor dem Wort "d_type" in der Zeile

"} d_type ;"

der Strukturdeklarierung.

Kann mir bitte jemand erklären, was mit einer "redeclaration" gemeint 
ist bzw. wie eine solche in c-Code aussehen könnte? Sorry, falls die 
Frage evtl. einfach und offensichtlich ist.

Vielen Dank bereits im Voraus.

Beste Grüße,
Simon

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also prinzipiell seh ich auf die schnelle nichts, was an dem struct 
auszusetzen wäre. Ich habs zur Sicherheit nochmal schnell bei mir in den 
GNU eingefügt und der nimmts so an. (bis auf uint8_t und uint16_t). Aber 
redeklaration deutet darauf hin, dass der Name deines Structs schon 
anderweitig verwendet wird.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kurze Idee:
Du bindest den Header mehrfach ein?
Hast Du so eine Konstruktion im Header?
#ifndef _HEADER_H_
#define _HEADER_H_

 // hier eigentlicher Header

#endif

MfG Andreas

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.