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


von Fiffi (Gast)


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

von Jörg Wunsch (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.