您的位置:首页 > 其它

如何比较2个数组的按键值是否相等?

2016-11-01 11:30 295 查看
STATIC  UINT8 Key1val[6]={0xA5,0x5A,0x04,0xB1,0xB5,0xAA};//按键1
STATIC  UINT8 Key2val[6]={0xA5,0x5A,0x04,0xB2,0xB6,0xAA};//按键2
STATIC  UINT8 Key3val[6]={0xA5,0x5A,0x04,0xB3,0xB7,0xAA};//按键3

kernel驱动 中,下面三个数组为app发过来的按键键值,开始定义一个数组buf[6]={0};然后把实际接收到的键值保存到buf[]中,再与下面3个数组(键值)比较,思路是怎样的?用for一个个数组一个个值比较吗?buf[i]赋值后]可以直接这样吗?在已知道sizeof Key1val = sizeof buf =6的条件下,这样比较可以吗?

数组中元素间如果没有空隙(由于字节对齐产生的空隙),就可以用户memcpy.对结构数组,由于成员的类型不同,字节对齐产生的空隙存在,就不能用memcpy

memcmp一般编译器会优化的,实际一般不会这么跑(debug模式可能会这样,release模式肯定不会)

数组里面的元素不多,可以一个个比,不过我就是考虑到如果多的话应该有更好的解决办法,而数组和一般变量比较不一样,所以特别请教下大家,很久没来这里发提问帖了,还是一如既往的能学到东西,解决问题!
用memcmp(buf, Key1val, sizeof(buf));解决了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: