首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

哪位高手来详细解释下这段代码

2012-02-12 
谁来详细解释下这段代码?//alignptrtonearestDWORDWORD*AlignDWORD(WORD*ptr){ptr++//rounduptonearestDW

谁来详细解释下这段代码?
//   align   ptr   to   nearest   DWORD
WORD*   AlignDWORD(WORD*   ptr)  
{
ptr++;                                       //   round   up   to   nearest   DWORD
LPARAM   lp   =   (LPARAM)ptr;     //   convert   to   long
lp   &=   0xFFFFFFFC;                   //   make   sure   on   DWORD   boundary
return   (WORD*)lp;
}

[解决办法]
先把ptr转换成long型,然后1111 1111 1111 1111 1111 1111 1111 1101相与,返回相与后的结果
[解决办法]
0xFFFFFFFC = 1111...1100
保证指针指向的地址值最后两位为0,最后两位为零就保证了地址值是按照+4的方式跳变的
这就能理解了吧

100 = 4
1000 = 8
1100 = 12
...

热点排行