簡體   English   中英

結構的大小與類型的大小

[英]Sizeof Struct vs Sizeof Type

我不是C的“那個”新手,但可以請一位對此有所啟發:

printf( "%d %d\n", sizeof( int ), sizeof( unsigned char ) );

按預期打印4和1。

typedef struct
{
    int a;
    unsigned char b;
} test

printf( "%d\n", sizeof( test ) );

打印8 ...我真的很困惑!

它稱為“ 對齊 ”。 您的struct被填充。 您可以“ 打包 ”它(不同的編譯器有不同的方式定義應打包的類型),然后它就不會對齊,但是您可能會遇到運行時數據訪問問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM