inline void* align(char* val) { return (void*)(((unsigned)val + 3) & ~3); }C++函数什么意思啊?详细? 10

在线等... 在线等 展开
 我来答
桑白凝6y
2012-07-19 · 超过20用户采纳过TA的回答
知道答主
回答量:60
采纳率:80%
帮助的人:22.3万
展开全部
英语单词align提供了一种思路,与“对齐”相差不远。
下面验证一下:
val为0时,结果是0;
val为1时,结果是4;
val为2时,结果是4;
val为3时,结果是4;
val为4时,结果是4;
val为5时,结果是8;
val为6时,结果是8;
val为7时,结果是8;
val为8时,结果是8;
val为9时,结果是12;
val为10时,结果是12;
。。。
可见该函数是按4对齐,或者称之为 对4 上取模(貌似叫这个,记不清了)
孤舟釣客
2012-07-08 · TA获得超过293个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:247万
展开全部
猜测是对齐操作;
如val 指向的地址是0x0000 0003
则((unsigned int)val + 3) = 0x0000 0006;
0x0000 0006 & ~3 = 0x0000 0006 & 0xffff fffc = 0x0000 0004
即实现按4对齐。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式