2011-09-07 73 views
0

有沒有辦法通過預處理器檢查變量的類型?
其實我想要做這樣的事情:通過預處理器指令檢查變量的類型

//test.c 
int main(void) 
{ 
    TYPE a=6; 
#if TYPE==int 
    printf("%d\n",a); 
#elif TYPE==float 
    printf("%f\n",a); 
#endif 
} 

現在我用它作爲:

gcc -o test -D TYPE=float test.c 

但它無法正常工作。 TYPE總是與int匹配,並根據%d給出結果。
請幫我解決這個問題。

回答

1

預處理器無法比較這樣的字符串。見this FAQ。做到這一點的方法是#定義選項,並有一個例子可以幫助你。