![]() |
1
3
为了澄清@TheBluefish的答案,此代码有错误
当您使用
该整数的其他两个字节未指定且未初始化。在这种情况下,他们
但如果您从另一个函数调用此函数或重复调用此函数,则可以预期堆栈会包含其他伪值。 如果您初始化变量,您将获得所需的值。 但还有另一个错误…字节顺序在这里也很重要。这段代码假设机器本机字节顺序与文件规范中的字节顺序完全匹配。有许多不同的位图格式,但根据您的参考,维基百科文章说:
这与您的相同,它显然也是x86 little-endian。其他字段没有定义为little-endian,因此当您继续解码图像时,必须注意它。 理想情况下,您应该读入一个字节数组并将字节放在它们所属的位置。 看见 Convert Little Endian to Big Endian
|
![]() |
2
2
-859045864可以用十六进制表示为0xCCCC0018。 读取第二个字节得到0x0018=24bpp。
这里最可能发生的情况是,liczbaBitow正在初始化为0xCCCCCCC;而您的
尽管如此,尤其是对于这样的情况,最好使用与您的数据完全匹配的数据类型:
这可以在中找到
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |