【发布时间】:2015-05-15 15:56:17
【问题描述】:
unsigned char* Read_pixels(unsigned char *baseptr)
{
unsigned char pixelinfo[4096];
pFileheader->ID1 = *baseptr++; // save B
pFileheader->ID2 = *baseptr++; // save M
pFileheader->FileSize = *((unsigned int*)baseptr);
baseptr = baseptr + 4;
pFileheader->Reserved = *((unsigned short*)baseptr);
baseptr = baseptr + 2;
pFileheader->Reserved2 = *((unsigned short*)baseptr);
baseptr = baseptr + 2;
pFileheader->PxOffset = *((unsigned int*)baseptr);
}
在这个 READ BMP 函数中,我收到一个指向内存中 bmp 文件开头的指针。 我在上面的代码中所做的是读取文件头并将数据存储在文件头结构的各个成员中。我对第 5 行代码有疑问,我将 char 指针类型转换为无符号整数。我这样做是因为 FileSize 值是unsigned int 类型,我的 baseptr 实际上是一个 char 指针。我做对了吗?代码是否正确?
【问题讨论】:
标签: pointers types casting header bmp