Tricore + Tasking Compiler / Struct-Problem

Gast #1077191
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
Gast
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.
Gast
Kurze Idee:
Du bindest den Header mehrfach ein?
Hast Du so eine Konstruktion im Header?
1
#ifndef _HEADER_H_
2
#define _HEADER_H_
3

4
 // hier eigentlicher Header
5

6
#endif

MfG Andreas

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.