当使用-fwrapv时,C-在GCC中签名的溢出仍然不确定



背景

默认情况下签名的溢出是未定义的行为。

我对GCC的理解(基于https://gcc.gnu.org/onlinedocs/gcc/code-gen-options.html,-fwrapv做什么?被定义的行为。

但是,对另一个问题的评论似乎说签名的溢出仍然是未定义的行为。

问题

用-fwrapv在GCC中签名溢出?如果不是,那么-fwrapv的目的是什么?

给定GCC文档说:

-fwrapv

此选项指示编译器假设使用二下表示表示签名的算术溢出,减法和乘法。

我将其描述为特定于实现的扩展,它为标准C中的不确定行为提供了明确定义的行为。

restally我说这仍然是C标准的不确定的行为,但是您要指示编译器以特定的,不可预测但可预测的方式行动。

相关内容

最新更新