在c / c ++中,具有不同数据类型的变量排序如何影响代码的大小?
我见过的例子涉及4个结构,每个结构有4个变量。变量的类型为int,char,float和BYTE;每个结构具有相同数量的变量(即4),并且在每个结构中命名相同。唯一的区别是变量的顺序。
我理解整数,char和float有不同的大小(即int 4字节等),但这些类型的布局如何影响代码大小。
提前致谢!
答案 0 :(得分:1)
欢迎来到 Structure Padding 的精彩世界。
答案 1 :(得分:0)
不进入结构填充的特定于编译器的选项,最好的建议是将较大的元素放在结构的前面,然后逐渐减少。在您的示例中,我将它们命令为float,int,BYTE和char。
每种类型都有一个最适合它的内存对齐方式;这将是类型的大小,或更大。编译器为您管理这个,所以大多数时候您不需要担心它,它会在结构中插入填充,以便下一个元素处于自己的最佳对齐状态。通过从最大到最小的顺序,最大化下一个元素已经在边界上并且不需要任何填充的概率。