已签名的整数溢出和下溢是未定义的
作者: Midar创建于 2025年12月18日更新于 2025年12月18日
规范中提到 `QOI_OP_DIFF` 和 `QOI_OP_LUMA` 会发生溢出。然而,参考实现似乎使用 `signed char` 来实现此功能。但是 C 标准中指出,有符号整数的溢出和下溢是未定义的。GCC 使用 `-fwrapv` 来允许有符号整数溢出和下溢,但这并不具备可移植性。我自己的实现则采用如下方式解决此问题:https://git.nil.im/ObjFW/ObjFW/src/commit/b6ec6d21d4997e4aae1030533115103ca5c49466/src/OFQOIImageFormatHandler.m#L131-L175
内容来源: phoboslab/qoi