当前位置:  技术问答>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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c/c++预处理命令预#pragma介绍
  • 关于pragma pack的问题.
  • #pragma告警问题请教
  • (急问)有关#pragma pack()的问题
  • 如何让gcc识别#pragma pack(1)语句?
  • 请问在gcc中有没有与vc中的#pragma pack(1)等价的东东
  • C#预处理指令之#line,#pragma warning 详细解析


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,