我对两个静态无符号长变量之间的减法有疑问。
我的变量定义如下:
static unsigned long actual_value;
static unsigned long incoming;
static unsigned long outgoing;
我在while循环中做的操作是:
actual_value = actual_value - (outgoing - incoming) / 1000;
其中“传出”始终大于“传入”。问题是我的 actual_value 在每次迭代时都不会改变。我从不在 while 循环的任何其他时间点修改“actual_value”的值,所以问题就在这里。
事实上,如果我尝试用以下公式代替该等式:
actual_value = actual_value - 1;
在每次迭代中正确地值减 1。
但是,如果我将其更改为:
actual_value = actual_value - 0.1;
在每次迭代中,该值再次减少 1。所以我想我还没有完全理解静态无符号变量是如何工作的。
问题出在哪里?
提前致谢。