ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
GCCの拡張機能。関数、変数、型に対して属性を付加するために使われる。
__attribute__に続けて、二重括弧でパラメーターを記述するのが特徴的な書式となっている。
__attribute__ ((パラメーター))
パラメーターには様々なものがあり、カンマ(,)で区切って複数の属性を指定するものもある。
二重括弧でくくるのには理由が存在し、それはGCC以外では、マクロで無視できるようにするためである。複数の引数があっても、括弧でくくってあれば、マクロは一つの引数としてそれを扱うことができ、次のようにして無視することができる。
#ifndef __GNUC__
#define __attribute__(x)
#endif
また、関数などに対する__attribute__機能もさまざまあるが、関数属性は宣言時にのみ指定でき、関数の定義部では使えないので注意が必要である。
一覧は、6 Extensions to the C Language Familyに記載されている。
Common以外についてはアーキテクチャーごとに定義される。同名のものも多いが、アーキテクチャーによって書式などが異なることもある。多くはCPUのアーキテクチャーごとだが、OSによって定義されるものもある。
また、Function AttributesとVariable Attributesは共通するものも多い。
以下は、Common(共通)のほか、ARM、Microsoft Windows、x86アーキテクチャーで使われるもののみをリストアップする。
なお、各オプションの名称は前後に__を付けることができる。
6.31 Declaring Attributes of Functionsに記載されているもの。
以下アーキテクチャーにも独自の定義がある。
6.32 Specifying Attributes of Variablesに記載されているもの。
以下アーキテクチャーにも独自の定義がある。
6.33 Specifying Attributes of Typesに記載されているもの。
以下アーキテクチャーにも独自の定義がある。
6.34 Label Attributesに記載されているもの。
6.35 Enumerator Attributesに記載されているもの。
sparse(1)で使われているもの。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます