为什么要SIGFPE
用于整数算术异常,例如除以零,而不是为整数算术异常创建单独的信号或首先为算术异常命名信号?
问问题
224 次
1 回答
1
IEEE Std 1003.1 标准将 SIGFPE 定义为:
算术运算错误。
并没有真正提到浮点运算。这背后的原因没有明确说明,但这是我的看法。
x86 FPU 可以使用诸如 等指令同时对整数和浮点数据进行操作FIDIV
,因此不清楚将浮点数据除以整数零是否会产生浮点或整数点异常。
此外,高达 80486(与 ISO/ANSI C 标准同年发布)x86 CPU 根本没有浮点功能,浮点协处理器是一个单独的芯片。可以使用软件浮点仿真代替芯片,但使用 CPU 内置的 ALU(整数算术逻辑单元)会引发整数异常。
于 2020-02-11T13:38:25.087 回答