我的 C 编译器在对unsigned
值使用一元减法时发出警告,因此我通过从 0 中减去来修复警告。
现在我想知道当前代码是否等同于原始代码:
uint32_t a, b; // assume b is initialized and non-zero
a = -b % b; // old code
a = (0-b) % b; // current code
我的问题是:对于相同的值,b
两行代码是否会产生相同的结果a
?
我的 C 编译器在对unsigned
值使用一元减法时发出警告,因此我通过从 0 中减去来修复警告。
现在我想知道当前代码是否等同于原始代码:
uint32_t a, b; // assume b is initialized and non-zero
a = -b % b; // old code
a = (0-b) % b; // current code
我的问题是:对于相同的值,b
两行代码是否会产生相同的结果a
?