gcc: プラグマ: 弱い

6.62.11 弱いプラグマ; SRV4 と互換性を持たせるため。
SVR4 との互換性を確保するために、GCC は、シンボルを弱いと宣言し、弱いエイリアスを定義するための #pragma ディレクティブのセットをサポートしています。 #pragmaweak
シンボル
このプラグマは、宣言に同じ名前の属性があるかのように、シンボルを弱いと宣言します。プラグマは、シンボルの宣言の前または後に表示されます。シンボルがまったく定義されていないことは、エラーではありません。弱いシンボルは定義されています
このプラグマweakは、シンボル宣言の前後に出現でき、位置に関する要件はありません。このようにすると、このシンボルが定義されていない場合でも、エラーは報告されません。
#pragmaweaksymbol1 =symbol2
このプラグマは、symbol1 がsymbol2 の弱い別名であることを宣言します。現在の変換単位でsymbol2 が定義されていない場合、エラーになります。; これは、symbol1 がsymbol2 への弱いリンクであることを意味します。シンボル2が定義されていない場合はエラーが発生します。

この使用のシナリオは、特定の環境で呼び出す別の関数を定義することです。それ以外の場合は実行する必要がない場合。特別な治療です。コンパイルでこのシンボルが見つからなくても問題ありません。もちろん、シンボルが存在するかどうかを判断する必要があります。アドレス記号を取得することです。

おすすめ

転載: blog.csdn.net/qq_36428903/article/details/131894915