背景
默认情况下签名的溢出是未定义的行为。
我对GCC的理解(基于https://gcc.gnu.org/onlinedocs/gcc/code-gen-options.html,-fwrapv做什么?被定义的行为。
但是,对另一个问题的评论似乎说签名的溢出仍然是未定义的行为。
问题
用-fwrapv在GCC中签名溢出?如果不是,那么-fwrapv的目的是什么?
给定GCC文档说:
-fwrapv
此选项指示编译器假设使用二下表示表示签名的算术溢出,减法和乘法。
。
我将其描述为特定于实现的扩展,它为标准C中的不确定行为提供了明确定义的行为。
restally我说这仍然是C标准的不确定的行为,但是您要指示编译器以特定的,不可预测但可预测的方式行动。