我遇到了这种在 C++ 中读取 BMP 文件的语法
#include <fstream>
int main() {
std::ifstream in('filename.bmp', std::ifstream::binary);
in.seekg(0, in.end);
size = in.tellg();
in.seekg(0);
unsigned char * data = new unsigned char[size];
in.read((unsigned char *)data, size);
int width = *(int*)&data[18];
// omitted remainder for minimal example
}
Run Code Online (Sandbox Code Playgroud)
我不明白线路是什么
int width = *(int*)&data[18];
Run Code Online (Sandbox Code Playgroud)
实际上是在做。为什么从unsigned char *to int, int width = (int)data[18];,的简单转换不起作用?