Was bedeutet: __attribute__ ?

Gast #1010684
Lesenswert?

Hallo,

das kennzeichnet eine Compileranweisung,
z.B. attribute PROGMEM setzt beim AVR-GCC eine deklarierte Variable in 
den Programmspeicher.

Auf attribute folgt immer eine Anweisung. Was die macht, hängt vom 
Compiler ab.

Grüße,

Peter
#1011121
Lesenswert?

_attribute_ ist eine GCC-Erweiterung. Damit kann man zusätzlich 
Attribute an Programmteile kleben. Andere Compiler machen sowas zum 
Beispiel mit #pragma, aber die GCC-Programmierer mögen #pragma nun mal 
nicht.

Welche Attribute es gibt und was sie machen? Tja, die Attribute die für 
alle Plattformen gelten sind dokumentiert 
http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Function-Attributes.html und 
die folgenden Abschnitte.

Für Attribute, die nur auf einer speziellen Plattform funktionieren, ist 
man häufig gekniffen. Die werden als Geheimwissen gehandelt und tauchen 
häufig nur plötzlich in irgendwelchen Headern auf.
Gast #1012170
Lesenswert?

> Andere Compiler machen sowas zum Beispiel mit #pragma, aber die
> GCC-Programmierer mögen #pragma nun mal nicht.

Das hat nichts mit mögen zu tun, sondern liegt daran, daß #pragma für 
sowas eigentlich nicht sehr gut geeignet und etwas umständlich ist.

> Für Attribute, die nur auf einer speziellen Plattform funktionieren,
> ist man häufig gekniffen.

Nein. Die sind auch im selben Manual dokumentiert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren