arm - 为什么我的变量的值大于我设置的值?
问题描述
现在我正在研究 ARM R7,但我发现了一个我不明白为什么的情况。
这是我的代码
if ( i++ > 2048 )
{
panic(...); <----- here it has 2050 in its coredump.
}
当它变得恐慌时,它会转储整个内存,我可以用 T32 加载它。顺便说一句,变量“i”有 2050,而不是 2049。我不明白为什么它有这样的值。有人可以解释为什么会这样,请...
PS:不是多线程的。
解决方案
i++
返回变量的先前值(同时++i
返回新值)。因此,当i
2049(或任何更大的值)时,条件为真并被panic
调用。之前是2049 ,i
之后是2050 。if
无论条件是否为真,它将始终递增。这是 C、C++ 和许多其他语言的基本规则,与 ARM 或管道无关。
推荐阅读
- angular - Angular ngFor中的组件@Input
- python-3.x - subprocess.Popen 挂起主应用程序
- wcf - Service Fabric - 本地集群 - 排队
- node.js - 节点 JS 路由请求
- c# - 调用列表
在c#中将button1单击事件转换为button2单击事件 - javascript - 如何在 Facebook for Developers 下的测试页面上下载测试应用程序?
- javascript - 字符串不能转换为辅助功能委托辅助功能角色
- sql - 如何在sql server中获取月份(字符串)差异
- javascript - Ionic 在一个按钮内创建两个按钮
- javascript - 如何在结合 jQuery 和常规 JS 的 if-else 语句中检查两个条件是否满足