标签: c math
为什么C中的算术会使浮点数饱和而不是整数?它是底层处理器本身吗?
答案 0 :(得分:3)
它没有。从6.5 / 5:
如果在评估表达式期间发生异常情况(即,如果结果未在数学上定义或未在其类型的可表示值范围内),则行为未定义。
因此,执行浮点计算会导致值大于FLT_MAX会导致未定义的行为。
FLT_MAX
当行为未定义时,任何事情都可能发生。您所看到的是您的编译器生成CPU或FPU指令,该指令适用于明确定义的总和,并不关心溢出。