久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

gcc 對(duì)齊問題

 langhuayipian 2013-02-21

Linux下的 arm-linux-gcc 與 gcc 關(guān)于字節(jié)對(duì)齊問題

(2010-02-23 10:30:53)
方法一:

#include <stdio.h>

#pragma pack(1)
struct abc
{
 
   double a;
    int    b;
    char   c;
};
#pragma pack()

void main()
{
    printf( "sizeof( struct abc ) = %d\n", sizeof( struct abc ) );
}

以上代碼
gcc tBytePadding.c -o tBytePadding
Ubuntu執(zhí)行結(jié)果:sizeof( struct abc ) = 13

/usr/local/arm/2.95.3/bin/arm-linux-gcc -I /usr/local/arm/2.95.3/arm-linux/include tBytePadding.c -o tBytePadding
執(zhí)行結(jié)果:sizeof( struct abc ) = 16 <-- 依然四字對(duì)齊了,,沒有一字節(jié)對(duì)齊

方法二:

#include <stdio.h>

typedef struct tagabc
{
    double a;
    int    b;
    char   c;
}__attribute__( ( packed, aligned( 1 ) ) ) abc;

void main()
{
    printf( "sizeof( abc ) = %d\n", sizeof( abc ) );
}



#include <stdio.h>

struct abc
{
    double a;
    int    b;
    char   c;
}__attribute__( ( packed, aligned(1) ) );

void main()
{
    printf( "sizeof( struct abc ) = %d\n", sizeof( struct abc ) );
}

以上代碼
gcc tBytePadding.c -o tBytePadding
Ubuntu執(zhí)行結(jié)果:sizeof( struct abc ) = 13

/usr/local/arm/2.95.3/bin/arm-linux-gcc -I /usr/local/arm/2.95.3/arm-linux/include tBytePadding.c -o tBytePadding
執(zhí)行結(jié)果:sizeof( struct abc ) = 13

推薦使用方法二的第一種,!

注意:
typedef struct tagabc
{
    double a;
    int    b;
    char   c;
}__attribute__( ( packed, aligned( 1 ) ) );

tagabc abc;

以上寫法會(huì)報(bào)此錯(cuò)誤:warning: ‘packed’ attribute ignored

typedef struct tagabc
{
    double a;
    int    b;
    char   c;
} abc __attribute__( ( packed, aligned( 1 ) ) );

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多