若地址不是4KB对齐,则返回
IN DWORD dwAddress, //要目标地址,要求4KB对齐
if((dwAddress & 0x0fff ))//若地址不是4KB对齐,则返回
{
return FALSE;
}
怎么解释?
dwAddress & 0x0fff 这句话重点解释???
[解决办法]
4KB = 2^12,即地址后12位必须为0才对齐.
0x0fff,除去后12位前面的全部与0做位与运算,全部为零.只有后面12位至少有一位是1才不为0,如果不为0,则进入return FALSE;所以,如果不是对齐的,则return FALSE;