Ausgabe einer Struct-Größe per #error / #warning

Gast #100076
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
Gast #100077
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

Eine eigene Frage? Dieser Thread ist über 22 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.