c语言 - Add() 方法不会返回正确的结果



因此,我必须创建一个add方法,该方法将接受两个16位整数并返回结果,而不使用算术运算符。不幸的是,当输入像5和10这样的两个数字时,它返回0而不是15。我的代码中有什么地方做错了吗?下面给出的代码是用C

完成的
addition_subtraction_result add(uint16_t augend, uint16_t addend) {
addition_subtraction_result addition;
while (addend != 0){
int carry = augend & addend;
augend = augend ^ addend;
addend = carry << 1;
}
addition.overflow = false;
return addition;
}
如果你需要更多的信息,请告诉我。谢谢!

您返回addition(希望按值),您唯一设置的是addition.overflow = false;

最新更新