用struct成员减去struct成员?

时间:2013-11-15 13:30:04

标签: c

为什么我不能这样做:

Time calcTime(Time time1, Time time2)
{
    Time calc1;
    Time calc2;

    calc1.hours - calc2.hours; // It won't subtract!

    printf("Result: ", calc1.hours);
}

如果time1.hours为10且time2.hours为5,则结果应为5.但结果为10,因为减法不起作用!

3 个答案:

答案 0 :(得分:5)

也许你打算写:

calc1.hours -= calc2.hours

您在代码中执行的操作只是计算两个值的差异,但不会将其分配给任何值。它将没有任何效果,根据编译器选项,您可能会收到警告甚至错误。

答案 1 :(得分:2)

您没有将差异分配给任何变量。

你需要这样做:

calc1.hours = calc1.hours - calc2.hours;
printf("Result: ", calc1.hours);

或:

Time calc;

calc.hours = calc1.hours - calc2.hours;
printf("Result: ", calc.hours);

答案 2 :(得分:0)

您没有更改calc.hourscalc甚至不存在。这段代码没有编译。