这是我在使用 RobotC 3.62 时遇到的问题的一个示例:
long heading;
task main()
{
long num = 0;
heading=num+90000;
}
这给出了 的结果heading=24464
,这不是我所期望的。
我尝试用包含 90000 的 long 替换 90000 部分,它给出了预期的结果。似乎写数字 90000 会导致某种溢出错误(90000-256^2=24464)
。这很奇怪,因为 long 应该持有 "从 -2,147,483,648 到 2,147,483,647 的整数" 。我需要以某种方式投射它吗?我不熟悉C,有人可以解释这种行为吗?谢谢!