专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
C语言void指针的运算操作[小知识]
2019-07-13 18:40
发布
生成海报
站内文章
/
DSP
13542
0
1418
void *p; p++; ...
问:如果p的值为0x7f6c5b30,执行完p++,p的值为多少? 如果是char *p,答案是0x7f6c5b31; 如果是int *p,答案可能是0x7f6c5b32(如16bit DSP),可能是0x7f6c5b34(如32bit winxp),可能是0x7f6c5b38(如64bit Linux SUSE); 如果是void *p呢?
ANSI C 规定,不可以对void指针进行运算操作,因为我们不知道指针指向的数据类型大小,无法进行偏移; 但, GNU规定,void指针的运算操作与char型保持一致;
因此,为了程序的可移植性,我们需要在处理void指针运算时一律转换为char型处理,例如:
void *p; ((char *)p)++; //通过这种手段控制p的偏移
Ta的文章
更多
>>
C语言void指针的运算操作[小知识]
0 个评论
原生ajax实现文件上传
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮