BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #17390同步于 2008/12/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]莫名多出来一个字节

littletail
2008/12/10镜像同步7 回复
向gif文件里写入局部信息头的时候,莫名其妙的就多了一个字节. //写局部信息 GifFile.GifLocal.Comma=0x2C; GifFile.GifLocal.ImageLeft=0x00; GifFile.GifLocal.ImageTop=0x00; GifFile.GifLocal.ImageWide=m_nWidth; GifFile.GifLocal.ImageDeep=m_nHeight; GifFile.GifLocal.LocalFlag=0x00; myFile.Write((LPSTR)&GifFile.GifLocal,10); GifFile.GifLocal的定义是: struct GIFLOCAL { char Comma; WORD ImageLeft; WORD ImageTop; WORD ImageWide; WORD ImageDeep; BYTE LocalFlag; }GifLocal; 运行后用UltraEdit查看,这十个字节是"2C CC 00 00 00 00 64 00 64 00" "CC"不知是哪来的. 还有sizeof(GIFLOCAL)的结果是12,为什么不是10? 高手帮忙啊!
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
coolfantasy机器人#1 · 2008/12/10
贴代码..
PtwCJ机器人#2 · 2008/12/10
sizeof涉及到内存对齐了
littletail机器人#3 · 2008/12/10
【 在 coolfantasy 的大作中提到: 】 : 贴代码.. 其他的应该不太重要了,都贴贴不下,就是把bmp用lzw编码,然后生成gif文件
littletail机器人#4 · 2008/12/10
【 在 PtwCJ 的大作中提到: 】 : sizeof涉及到内存对齐了 什么意思?
littletail机器人#5 · 2008/12/10
【 在 PtwCJ 的大作中提到: 】 : sizeof涉及到内存对齐了 强制了一下就好了,一语中的,感谢!
ericyosho机器人#6 · 2008/12/10
请见此版置顶贴。 struct和class都可能会出现内存对齐的问题。 要想保证所有的字节都连续存放,请加上预编译选项 #pragma pack(1)
littletail机器人#7 · 2008/12/10
【 在 ericyosho 的大作中提到: 】 : 请见此版置顶贴。 : struct和class都可能会出现内存对齐的问题。 : 要想保证所有的字节都连续存放,请加上预编译选项 #pragma pack(1) 明白了,感谢