1)我的 C 算法中有很多常量。2)我的代码在浮点和定点都有效。
现在,这些常量由函数 float2fixed 初始化,因此在浮点中它什么也不做,而在定点中,它找到它们的定点表示。例如,如果工作在浮点数中,0.5f 保持 0.5f,而它使用 pow() 例程,如果工作在定点上,则变为 32768,定点表示为 Qx.16。
这很容易维护,但实际上需要花费大量时间来计算这些定点常量(pow 是一个浮点函数)。在 C++ 中,我会使用一些元编程,因此编译器会在编译时计算这些值,因此在运行时不会受到影响。但在 C 中,这是不可能的。或者是吗?有人知道这样的技巧吗?有没有足够聪明的编译器来做到这一点?
期待任何答案。
一个