次の弱くリンクされた宣言があります。
extern __attribute__((visibility ("default"))) Type* const symbolName __attribute__((weak_import));
問題は、オペレーティング システムによって、シンボルが定義されている場合と定義されていない場合があることです。
したがって、それを使用するとfunc(symbolName);
、null の逆参照を試みているため、シグナル 11 クラッシュが発生します。と尋ねることもできますif(&symbolName != NULL) { func(symbolName); }
が、この記号を使用しているすべての人がこの質問をしたことを覚えておく必要があり、最適ではありません。
このシンボルを条件付きで変更または再宣言する魔法の魔法を探していますが、利用できない場合にのみ、動作するデフォルト値を設定しますfunc
。
これは醜い解決策であり、推奨されないことを理解しています。この時点で、それを行う方法があるかどうかを知りたいだけです。