GNU / Linux上のGCCによって生成された共有オブジェクトライブラリに関連して、プリプロセッサがどのように機能するかについてもう少し調べようとしています。
私はこれに対する明確で簡潔な答えを見つけることができませんでした。
次のようなプリプロセッサステートメントを使用する場合:
#ifndef __OPTI_MY_VARIABLE
#define __OPTI_MY_VARIABLE 1
#endif
そして、これを使用して共有オブジェクトファイルをコンパイルし、次のように宣言した別のプログラムにリンクします。
#define __OPTI_MY_VARIABLE 2
共有オブジェクトライブラリを使用するメインプログラムをコンパイルした後、私のプログラムは値1または2を使用しますか?
値1を使用する場合、たとえばプリプロセッサステートメントを使用しないなどして値2を使用するようにコードを構築する方法はありますか?言い換えると、同じ名前の別のグローバル変数がデフォルト値をオーバーライドしない限り、デフォルト値を宣言する方法はありますか、またはこの情報を共有オブジェクトの関数に渡す必要がありますか?