__attribute__ (( keyword)) によって、または [[ keyword]] によって代わりに呼び出される次の属性は、互換性のためにコンパイラによって実装されます。
| 
 always_inline — 次と同等: #pragma inline および -xinline  | 
| 
 noinline — 次と同等: #pragma no_inline および -xinline  | 
| 
 pure — 次と同等: #pragma does_not_write_global_data  | 
| 
 const — 次と同等: #pragma no_side_effect  | 
| 
 malloc — 次と同等: #pragma returns_new_memory  | 
| 
 constructor — 次と同等: #pragma init  | 
| 
 destructor — 次と同等: #pragma fini  | 
| 
 weak — 次と同等: #pragma weak  | 
| 
 noreturn — 次と同等: #pragma does_not_return  | 
| 
 visibility  | 
| 
 returns_twice  | 
| 
 packed — 下記を参照  | 
| 
 atomic  | 
| 
 outer  | 
| 
 relaxed  | 
| 
 mode  | 
| 
 aligned  | 
| 
 strong  | 
struct または union の型定義に添付されるこの属性は、必要なメモリーを最小限に抑えるために、構造体または共用体の各メンバー (幅が 0 のビットフィールドを除く) の配置を指定します。enum 定義に添付する場合は、この属性は最小の整数型を使用することを示します。
struct および union 型に対してこの属性を指定する場合は、構造体または共用体の各メンバーに対して packed 属性を指定する場合と同じことを意味します。
次の例では、struct my_packed_struct のメンバーは互いに隣接してパックされますが、メンバーの内部レイアウトはパックされません。内部レイアウトをパックするには、struct my_unpacked_struct もパックする必要があります。
struct my_unpacked_struct
{
   char c;
   int i;
;
              
struct __attribute__ ((__packed__)) my_packed_struct
{
   char c;
   int  i;
   struct my_unpacked_struct s;
};
 | 
この属性を指定できるのは、enum、struct、または union の定義のみです。列挙型、構造体、共用体のいずれも定義しない typedef に対して、この属性は指定できません。