int flag;
int cmp_1,cmp_2;
.........
code
.........
/*
当cmp_1>cmp_2时,保存数据
*/
flag = memcmp(cmp_1,cmp_2,1);
if(flag)
{
//code save data;
}
在调试的时候,发现只要cmp_1!=cmp_2,都能跳转到//code save data; 里面,跟原先的流程有很大的出入,在查看汇编的时候发现
if(flag) 翻译成汇编为 CBZ指令
CBZ 在arm指令的意思是只要不是0,都执行if括号里面的code。
因此在使用if语句判断的时候,千万注意此情况的出现。if(cmp_1>cmp_2)
memcmp 是从首地址开始比较的,如果高为放在高地址,则比较有问题!!!!