|
|
发表于 2008-2-15 15:11:00
|
显示全部楼层
Re:谁可以帮忙分解一下这个产生指针的宏?
测试一下来说明吧
#define MakePtr(cast, ptr, Addvalue) (cast)((DWORD)(ptr)+(DWORD)(Addvalue))
int main(int argc, char* argv[])
{
int a[5] = {0, 1, 2, 3, 4};
int *b;
b = MakePtr(int*, a, 8); //分解开来就是&a[0]加上8个字节,因为指针转换为了DWORD
//所以加上的是字节数,而不8个int类型大小
//然后得到a[2]的指针,最后转换为(int *),附给b
cout<<"*b="<<*b<<endl;
return 0;
} |
|