我對於用C語言進行編程相當新穎。我的問題是我有兩個函數實現,我希望能夠輕鬆地在它們之間切換。在C預編譯器中的實現之間切換
現在我將函數的兩個實現分別定義爲function_implementation1和function_implementation1分別在文件「funtion_implementation1.h」和「funtion_implementation2.h」中。要在它們之間切換,我有以下文件:
#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 ...'進行編譯,則會得到第二個版本。 –