小编RBr*_*ght的帖子

*(int*)&data[18] 在这段代码中实际上做了什么?

我遇到了这种在 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];,的简单转换不起作用?

c++ syntax bmp bitmapimage

4
推荐指数
1
解决办法
271
查看次数

标签 统计

bitmapimage ×1

bmp ×1

c++ ×1

syntax ×1