mikrocontroller.net

Forum: Compiler & IDEs Ausgabe einer Struct-Größe per #error / #warning


Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist es möglich bei WinAVR/AVRGCC die Größe einer Struktur bei
Compilerausgabe anzuzeigen ?

folgender Code:

struct GLVAR_STRUCT
{
unsigned char tx_buf[400];
unsigned char rx_buf[400];
};

struct GLVAR_STRUCT g;

#error sizeof(GLVAR_STRUCT)


Leider bekomme Ich nur die folgende Ausgabe, und nicht die Größe:
"global.h:47:2: #error sizeof(GLVAR_STRUCT)"

"#warning" funktioniert gar nicht.


Vielen Dank für eure Hilfe !!!


Gruß

Fiffi

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann nicht funktionieren.  #error und #warning sind Präprozessor-
Anweisungen, während sizeof() erst dem Compiler bekannt ist.

Du kannst bestenfalls irgendwo ein Array anlegen, das Du via sizeof()
initialisierst und Dir dann den generierten Assemblercode ansehen.

Vielleicht fragst Du ja einfach mal nach, worum es Dir geht?  Sicher
kann Dir hier jemand erklären, wie groß das von Dir gewünschte
Datenobjekt wird.

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.