uint16_t dest_pID;uint8_t *p;pf->dest_pID = p[0] + (p[1] << 8) //(p[1] << 8) equals 0 right?
此代码是嵌入式 *** 作系统驱动程序的一部分.
一些想法可能是该声明背后的想法?或者可能是我遗失了一些必要的东西?
第二:p是指向uint8_t的指针,当你执行(p [1]<< 8)时,你将指针内部的内容移动8,例如,如果移位后p [1] = 0xE5将是0xE500.请记住,将结果放在dest_pID中,这是一个2字节的变量. 最后一行的转换最有可能采用pID的低字节(不太重要)并将其添加到pID的高字节(移位8)并将其放入pf-> dest_pID中,你可能会想到为什么他没有从一开始就发送2个字节,原因可能是因为他从一个总线上获取它,每个单位时间(周期)只发送一个字节.
总结以上是内存溢出为你收集整理的这段C代码的某些部分对我来说没有意义全部内容,希望文章能够帮你解决这段C代码的某些部分对我来说没有意义所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)