Oracle Solaris Studio 12.2:C++ 用户指南

A.2.28.1 值

t 可以是下列值之一。

表 A–13 -ftrap

值 

含义  

[no%]division

[不] 在除以零时自陷。 

[no%]inexact

[不] 在结果不精确时自陷。 

[no%]invalid

[不] 在无效操作上自陷。 

[no%]overflow

[不] 在溢出上自陷。 

[no%]underflow

[不] 在下溢上自陷。 

%all

在所有以上内容中自陷。 

%none

不在以上任何内容中自陷。 

common

在无效、除以零和溢出时自陷。 

注意,选项的 [no%] 形式只用于修改 %allcommon 值的含义,且必须与其中的一个值一起使用,如以下示例所示。选项自身的 [no%] 形式不会显式导致禁用特定的陷阱。

缺省值

如果不指定 -ftrap,则编译器假定 -ftrap=%none

示例

–ftrap=%all,no%inexact 意味着设置除 inexact 以外的所有陷阱。

警告

如果使用 –ftrap=t 编译一个例程,就要使用相同的 -ftrap=t 选项编译程序的所有例程;否则可能会产生意外的结果。

使用 -ftrap=inexact 陷阱时务必谨慎。只要浮点值不能精确表示,使用 – ftrap=inexact 便会产生自陷。例如,以下语句就会产生这种情况:


x = 1.0 / 3.0;

只有编译主程序时该选项才有效。请小心使用该选项。如果希望启用 IEEE 陷阱,请使用 –ftrap=common

另请参见

ieee_handler(3M) 和 fex_set_handling(3M) 手册页。