首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种不关心结构/类布局的实用主义?如果没有,为什么?

有没有一种不关心结构/类布局的实用主义?如果没有,为什么?
EN

Stack Overflow用户
提问于 2014-10-16 15:36:39
回答 1查看 211关注 0票数 0

有各种用于控制结构/类布局的pragma,如pragma pack。但据我所知,没有pragma可以说“我不在乎布局。它是内部的,代码不依赖它。重新排序它以获得最佳的性能/大小”。AFAIK,这是典型的情况,它可以提高性能/规模在许多情况下。此外,即使程序员非常小心地重新排序它的性能/大小,一个不同的目标体系结构可能有一个不同的最佳布局。

编辑:澄清一下,我说的是会员的顺序。填充物已经可控了。

另外,PVS有一个相关的消息。这就是我要说的--为什么不能用一个带有pragma的编译器来完成

EN

回答 1

Stack Overflow用户

发布于 2014-10-16 15:49:24

该语言特别指出,类成员在内存中的排序方式与它们在每个访问级别(如private)中的顺序相同。实用主义是不可能推翻这种行为的。

见9.2/14:

分配具有相同访问控制(第11条)的(非联合)类的非静态数据成员,以便以后的成员在类对象中具有更高的地址。不指定具有不同访问控制的非静态数据成员的分配顺序。

请记住,重新排序成员将更改子对象构造函数和析构函数的调用顺序,可能还会更改其他事情。即使给编译器在幕后进行这类更改(如果您有一个成员依赖于另一个成员的初始化),这似乎是非常危险的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26408426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档