Was bedeutet: __attribute__ ?

Gast #1010684
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
_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
> 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

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