__attribute__((visibility("visibility_type"))) 変数属性

この変数属性は、ELF のシンボルの可視性に作用します。

Note

この属性は、ARM コンパイラでサポートされている GNU コンパイラの拡張機能です。

Show/hide構文

__attribute__((visibility("visibility_type")))

visibility_type は、以下のいずれかになります。

default

シンボルに想定される可視性は他のオプションによって変更される場合があります。default の可視性は、このような変更よりも優先されます。default の可視性は、外部リンケージに対応します。

hidden

シンボルはダイナミックシンボルテーブルには配置されません。そのため、他の実行可能ファイルや共有ライブラリが直接参照することはできません。関数ポインタを使用した間接参照は可能です。

internal

プロセッサ固有のアプリケーションバイナリインタフェース(psABI)で別途指定されない限り、internal の可視性とは、関数が決して他のモジュールから呼び出されないことを意味します。

protected

シンボルはダイナミックシンボルテーブルに配置されますが、それを定義しているモジュール内の参照は、ローカルシンボルにバインドされます。つまり、このシンボルが別のモジュールによってオーバーライドされることはありません。

Show/hide使用法

この属性は、default の可視性を指定する場合を除き、暗黙的に外部リンケージが割り当てられるような宣言での使用が想定されています。

この属性は C および C++ で使用できます。C++ では、型、メンバ関数、およびネームスペース宣言に適用することもできます。

Show/hide

int i __attribute__((visibility("hidden")));

Show/hide関連項目

Copyright © 2010 ARM. All rights reserved.ARM DUI 0491BJ
Non-ConfidentialID011811