繁体   English   中英

像__attribute __((packed))这样的属性,并非特定于GCC

[英]A __attribute__((packed)) like attribute not GCC Specific

我用__attribute__((packed)); 将一个structstruct存储在内存中,因为这对于某些低级开发至关重要。
__attribute__((packed)); 是特定于GCC的,我想知道是否有类似的解决方案适用于所有ANSI / C89 / C99 / C11编译器或至少其中一些。

没有标准的方法可以完成__attribute__((packed))工作。 典型的解决方案是使用#ifdef来处理不同的编译器。 您可以在此SO帖子中找到一些针对此方法的解决方案,其中还包含与__attribute__((packed))等效的Visual C ++的详细信息。 另外, GCC支持Windows struct打包编译指示 ,因此,如果您只关心Windows和GCC,则可以使用Windows方法。

不支持用于控制标准指定的结构布局的功能。 该标准仅声明此方面是实现定义的。

因此,如果确实需要控制布局,则将需要使用编译器特定的功能。 如果您找到一种根本不需要这样做的方法,那将是更好的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM