weak 関数属性

AIX Linux weak 関数属性を指定すると、関数宣言の結果得られるシンボルは、グローバル・シンボルではなく 弱いシンボルとしてオブジェクト・ファイルに作成されます。 weak 属性は、変数に適用することもできます。 プログラマーはこの言語フィーチャーを使用すると、ユーザーが自作のコード内の関数定義を オーバーライドした場合の名前の重複エラーを回避するようにライブラリー関数を作成できます。

weak 関数属性は関数属性の一般的な構文に従います。以下のダイアグラムで、 サポートされる形式が示されます。

>>-__attribute__--((--+-weak-----+--))-------------------------><
                      '-__weak__-'
 
 

通常、いくつかの再配置可能オブジェクト・ファイルを処理するときは、リンカーは同じ名前を持つグローバル・シンボル の多重定義を許可しません。ただし、同じ名前を持つグローバル・シンボルが存在している場合は、 リンカーは弱い定義を許可します。この弱い定義は無視されます。グローバル・シンボルと 弱いシンボルの間のもう 1 つの違いは、リンカーがアーカイブ・ライブラリーを検索するかどうかにあります。 未定義のグローバル・シンボルを解決するために、リンカーはアーカイブ・ライブラリーを 検索して、定義を含むメンバーを抽出します。未定義の弱いシンボルの解決にはこれを行いません。

弱いシンボルには、次の制約事項および制限が適用されます。

関連参照

IBM Copyright 2003