标签: c embedded signal-processing
我正在将一些通用C代码移植到具有24位架构的音频DSP。 ASIP编译器和BSP材料提供了16位和32位数学函数。支持int,long和它有意义的基本类型char - 与int16,int32,int24和int48一起使用。
尽管int24和int16具有相同的基数,并且在内存表示中应该几乎相同,但当计算涉及两种类型时,数字都被提升为双精度数。不幸的是,double不会映射到任何支持的类型。
除了对数据类型和表示非常严格外,是否有任何提示或技巧可以避免类型推广?