当前位置: 技术问答>linux和unix
#pragma pack(1) 取消默认对齐的意义?
来源: 互联网 发布时间:2017-05-16
本文导语: 意义是什么? 长度少于10个字! | 举个例子来解释吧 struct { char ch; int flag; }A; 使用默认对齐,假设4字节对齐,显然0字节存储ch,接下来1,2,3字节是对齐字节,第四字节才是flag。 如果我要把A的...
意义是什么? 长度少于10个字!
|
举个例子来解释吧
struct
{
char ch;
int flag;
}A;
使用默认对齐,假设4字节对齐,显然0字节存储ch,接下来1,2,3字节是对齐字节,第四字节才是flag。
如果我要把A的内容通过网络发送给客户端,客户端是不知道我机器的对齐字节的,这样的话,虽然对方知道我的结构定义,但是会出现解析错误问题。因为我们不能假设对方也使用和自己机器一样的字节对齐方式。这个道理和大小端是一个概念。说白了,必须传输连续的字节流,中间不能夹带无意义的信息。
当然了,如果我不跨网络,或者进程传输。那是不是说这样做就没有意义了。
也不尽然,不使用字节对齐可以节省空间,但是访问速率上就降低了。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。