#define GETBYTE2(r,p) </span>
do </span>
{</span>
unsigned char *x = (unsigned char )p; </span>
r = ((unsigned short)x[0] << 16) | ((unsigned short)x[1] << 8) | ((unsigned short)x[2]); </span>
}while(0)
这个是之前的定义在使用的时候
GETBYTE_2(unsigned short date, unsigned char ptr)
看起来不是很方便,所以准备改进一下:
#define GETBYTE_2(psrc) (unsigned short)(((unsigned short)psrc[0] << 8) | ((unsigned short)psrc[1]))
在使用的时候
unsigned char ptr= {1, 2, ,3, 4, 5, ,6 , ,7 ,8 ,9};
unsigned short date = GETBYTE_2(&ptr[1]);
在编译的时候总是报错,不知道宏定义那里出错了。
顶起啊,坐等问题解决,大神们
unsignedshortdate=GETBYTE_2((unsignedshort*)(&ptr[1]));
这样应该就可以通过了,不过你的那个数组明显定义有错误啊
unsignedchar ptr[]={1,2,3,4,5,6,7,8,9};
<spanstyle="line-height:1.5;font-size:10pt;">少了[],中间还多了好几个“,”,
unsignedcharptr[]={1,2,3,4,5,6,7};是没有问题的,谢谢你的答案,不过问题还没有解决.版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。