English 中文(简体)
C. 优化住房
原标题:Struct Alignment Optimization in C
#include <stdio.h>

struct X
{
    short s; 
    int i; 
    char c;
};

struct Y
{
    int i;
    char c;
    short s;
};

struct Z
{
    int   i;
    short s;
    char  c;
};

int main() {
    printf("%lu %lu %lu
", sizeof(struct X), sizeof(struct Y), sizeof(struct Z));
    return 0;
}

The above 回返

12 8 8

demonstrating that a structure s alignment depends on the order its members are declared. Are there any compiler settings to optimally reorder these declarations (for minimum struct size)? What are some general rules of practice that ensure optimal alignment as projects scale?

问题回答

是否有任何汇编机构对这些申报进行最佳的重新排序(最低结构规模)?

第C号允许方案依赖和敏感地制定成员令。 竞争者不能自由重组结构成员。

确保最佳协调的一些一般业务规则

一般来说,你可以通过降低协调要求来命令成员,从而尽量减少结构布局中的dding。

许多汇编者还提供延期服务,使你能够减少或消除因与成员接触不当而导致业绩下降的可能代价。 然而,这些延期在编汇人之间并不可行,在平台上,由于出入失常,造成硬差错,而不仅仅是业绩惩罚。





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签