次の属性 (__attribute__ ((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 と同等です。
aligned — #pragma align とほぼ同等ですが、構造体と共用体に限定されます。
constructor — #pragma init と同等です。
destructor — #pragma fini と同等です。
alias — 名前を、宣言された関数または変数名の別名にします。
weak — #pragma weak と同等です。
noreturn — #pragma does_not_return と同等です。
packed — #pragma pack() と同等です。
visibility — 「2.2 リンカースコープ指示子」で説明されているように、リンカースコープを提供します。構文は、__attribute__((visibility(“visibility_type ”))) です。ここで、visibility_type は次のいずれかです。
default — __global リンカースコープと同じ
hidden — __hidden リンカースコープと同じ
internal — __symbolic リンカースコープと同じ