2.8 能否关掉C语言结构中留下的空洞

问题:我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部 数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域的 对齐方式? 

这些“空洞” 充当了“填充”, 为了保持结构中后面的域的对齐, 这也许是必须 的。为了高效的访问, 许多处理器喜欢(或要求) 多字节对象(例如, 结构中任何大 于char 的类型) 不能处于随意的内存地址, 而必须是2 或4 或对象大小的倍数。

编译器可能提供一种扩展用于这种控制(可能是#pragma; 参见问题11.21), 但是没有标准的方法。

参见问题20.3。

永不止步步 发表于01-13 11:10 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308467个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号