1
我正在嘗試編寫一些需要在浮點和定點環境中運行的DSP代碼(數值類型將在編譯時確定)。我想使用宏或typedef別名特定的數字類型。根據數字類型的不同,乘法,除法和其他數學函數在實現上會有很大差異,所以我需要某種開關來決定是否包含某些頭文件,並可能根據數字類型改變實現。檢查typedef別名的值
我給一個簡短的代碼片段作爲一個例子...
typedef samp_t float;
// or #define samp_t float (bad naming practice?)
// An alternative in fixed point
samp_t multiply_samp_t(samp_t a, samp_t b){
return a*b;
}
/* typedef samp_t int;
#define RADIX 24
samp_t multiply_samp_t(samp_t a, samp_t b){
return (samp_t) ((long) a)*((long) b) >> RADIX);
}
*/
void main(void){
samp_t a,b,c;
a = 15;
b = 27;
c = multiply_samp_t(a,b);
}
那麼,如何將基於samp_t的類型,兩個不同的乘法功能之間的一個開關?任何建議或建議,歡迎。 謝謝! -Brant
謝謝!這給了我一個如何進行的粗略想法。如果存在這樣的事情,我希望看到一個typedef版本,儘管我懷疑它是否存在,因爲檢查typedef的存在是不可能的(據我所知)。 – user1352331 2012-05-02 05:33:19