什么阻止__attribute __((packed))进入ISO C/C++?

nod*_*kai 8 c c++ attributes memory-alignment

这是我在编写某些类系统软件时使用C/C++的最重要原因之一,但它只不过是一个非常常见的编译器扩展.为什么委员会不考虑正式支持它?它是否与现有规范中的任何子句不兼容,例如public和private是否对对象的内存布局有影响?

Nic*_*las 2

为什么委员会不考虑正式支持它?

因为没有人提出这个建议。与此类提案最接近的是N3986 (PDF),它仅适用于位字段。讨论中的评论表明委员会会感兴趣,但他们希望在尝试推进标准化之前了解现有实践的作用。

从那时起,负责该提议的人决定不再继续推行它。