BYTE* pDIB = NULL;
(BITMAPFILEHEADER*)pDIB 请问这该如何理解
还有这个
RGBQUAD* pRgbQuad = (RGBQUAD*)(pDIB + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));
(BITMAPFILEHEADER*)pDIB 请问这该如何理解
还有这个
RGBQUAD* pRgbQuad = (RGBQUAD*)(pDIB + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));
即按转换后的指针类型对指针的数据访问。
BYTE *pBuf=NULL;//按BYTE访问pBuf指向的数据
(int *)pBuf;//按int访问pBuf指向的数据
(BITMAPFILEHEADER*)pBuf;//按BITMAPFILEHEADER结构访问pBuf指向的数据
(BITMAPFILEHEADER*)pDIB 请问这该如何理解
没什么不好理解的,指针指向的地址没有变,只是人为认为它指向的内存块是另外一种数据结构RGBQUAD* pRgbQuad = (RGBQUAD*)(pDIB + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));
这个是将pDIB的指针进行偏移,加上BITMAPFILEHEADER和BITMAPINFOHEADER等2个数据结构的大小,然后地址重新赋给pRgbQuad