私はCでプログラミングするのがかなり新しいです。私の問題は、2つの関数の実装があり、それらの間を簡単に切り替えることができることです。Cプリコンパイラでの実装の切り替え
ここでは、関数 "funtion_implementation1.h"と関数 "funtion_implementation2.h"のfunction_implementation1とfunction_implementation1の2つの実装をそれぞれ定義します。私は最初の行を変更する必要があり、他の1つの実装から切り替えるために
#define IMPLEMENTATION1
#ifdef IMPLEMENTATION_1
#include "funtion_implementation1.h"
#define myFunction function_implementation1
#endif
#ifdef IMPLEMENTATION_2
#include "funtion_implementation2.h"
#define myFunction function_implementation2
#endif
:それらの間を切り替えるには、私は次のファイルを持っています。このアプローチはうまくいき、私はしばらくそれに満足していましたが、今このファイルを頻繁に開かなければならないと私は迷惑を掛けています。私はすべての自分のパラメータを定義するparameters.hファイルを持っており、そのファイルでどのインプリメンテーションを使用するかを選択します。残念ながら、最初の行をそのファイルに移動することはできません。私がそれを行う場合、myFunctionは定義されていません。
これを行うにはどのような方法が最適ですか?
私はこの問題をよく見かけません。 '#define'を介して共通名にエイリアスするのではなく、両方の実装の関数に同じ名前を使用してください。 – doynax
デフォルトにしないでください。 '#ifndef IMPLEMENTATION2'はデフォルトのincludeとdefineを使います。 'gcc ... -DIMPLEMENTATION2 ... 'でコンパイルすると、2番目のバージョンが得られます。 –