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