Why was SIGFPE
用于整数算术异常,例如除以零,而不是为整数算术异常创建单独的信号或通常首先为算术异常命名信号?
IEEE Std 1003.1 标准将 SIGFPE 定义为:
错误的算术运算。
并且并没有真正提到浮点运算。这背后的原因并没有明确说明,但这是我的看法。
x86 FPU 可以使用以下指令同时操作整数和浮点数据FIDIV
,因此不清楚浮点数据除以整数零是否会生成浮点或和整数异常。
此外,直到 80486(与 ISO/ANSI C 标准同年发布)的 x86 CPU 根本没有浮点功能,浮点协处理器是一个单独的芯片。软件浮点模拟可以用来代替芯片,但是使用 CPU 内置的 ALU(整数算术逻辑单元),这会抛出整数异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)