c - c 预处理器是否处理 float 学常量

标签 c

说我有

   #define A 23.9318;
   #define B 0.330043;
   #define C 5.220628;

我想要做
const unsigned result =  (unsigned)(0x01000000 * ( A * B / C ));    // unsigned is 32 bit

我希望得到浮点计算的固定十进制表示的结果。

我不能预先将 A、B、C 组合在一起,因为它们的定义不是我代码的一部分,我需要
如果它们被改变,它就可以工作。

最佳答案

不,标准 C 预处理器操作不执行浮点运算。

C 标准允许但不要求 C 实现在编译时执行这些操作。

关于c - c 预处理器是否处理 float 学常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241031/

相关文章:

c++ - 在 vector 之间共享元素的想法

将字符映射表从主机内存复制到 CUDA 中的设备

如果至少未使用 -O2,则 clang 链接器将失败

c - POSIX 取消点应该如何表现?

c - 为什么这个输出字符串要数字?

c - 在 C 中生成跨多个文件的现有函数列表

c - 为什么返回 false 的 bool 函数返回 true

c - hrtimers 和 clockid_t 问题

c++ - 使用二进制模式将数据结构写入文件

c 更改整数中的数字