欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C/C++語言中結(jié)構體的內(nèi)存分配小例子

 更新時間:2013年10月11日 09:05:18   作者:  
當未用 #pragma 指令指定編譯器的對齊位數(shù)時,結(jié)構體按最長寬度的數(shù)據(jù)成員的寬度對齊;當使用了 #pragma 指令指定編譯器的對齊位數(shù)時,結(jié)構體按最長寬度的數(shù)據(jù)成員的寬度和 #pragma 指令指定的位數(shù)中的較小值對齊

當未用 #pragma 指令指定編譯器的對齊位數(shù)時,結(jié)構體按最長寬度的數(shù)據(jù)成員的寬度對齊;當使用了 #pragma 指令指定編譯器的對齊位數(shù)時,結(jié)構體按最長寬度的數(shù)據(jù)成員的寬度和 #pragma 指令指定的位數(shù)中的較小值對齊。

#pragma 指令格式如下所示:
#pragma pack(4)     // 或者 #pragma pack(push, 4)

舉例如下:(機器字長為 32 位)
    struct
    {
        char a;
    }test;
    printf("%d/n", sizeof test);

打印出來的結(jié)果為 1;

    struct
    {
        char a;
        short b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出來的結(jié)果為 6;

    struct
    {
        char a;
        int b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出來的結(jié)果為 12;

    struct
    {
        char a;
        double b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出來的結(jié)果為 24;

    #pragma pack(4)
    struct
    {
        char a;
        double b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出來的結(jié)果為 16;

相關文章

最新評論