gpt4 book ai didi

c++ - BITMAPINFO 结构的 bmiColors 字段

转载 作者:行者123 更新时间:2023-11-30 17:13:21 25 4
gpt4 key购买 nike

BITMAPINFO 结构具有以下声明

typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;

为什么RGBQUAD数组是静态的?为什么它不是指针?

最佳答案

声明一个可变大小结构是一个标准技巧。颜色表绝不会只有一个条目,对于单色位图,它至少有 2 个条目,对于 8bpp 位图,通常为 256 个条目,等等。由 bmiHeader.biClrUsed 成员指示。所以结构体的实际大小取决于位图格式。

由于 C 语言不允许声明这样的数据结构,因此这是最接近的匹配。创建结构需要 malloc() 分配足够的字节来存储结构(根据 biClrUsed 计算)。然后简单地转换为 (BITMAPINFO*) 即可使其可用。

关于c++ - BITMAPINFO 结构的 bmiColors 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30906104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com