最佳C结构定义

Jay*_*y D 1 c compiler-construction optimization structure definition

我只是想知道在C结构(C结构定义)中打包项(int,float,unions等)时要遵循的注意事项,这将允许编译器进一步优化它.

我想知道是否应该遵循任何指导原则,例如以允许对齐单词边界的顺序向结构添加项目.等?

细节将不胜感激.

问候,-J

该问题还需要针对交叉编译此类C结构的优化策略.

MSN*_*MSN 6

如果您真的想要最小化空间,请从最大对齐到最小对齐.这应该保证你将获得最小的填充.

  • C不允许编译器重新排列结构中的成员,所以如果你想要最小的空间和最大的效率,你必须自己做. (10认同)

Has*_*kun 5

如果你可以在gcc下编译你的代码,你可能可以使用pahole来查找可以改进的结构,并自动重新打包它们.

这里有几篇关于pahole的文章可能会对你有所帮助: