| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| 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)で使われているもの。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます