構造体に関するいくつかの知識ポイント

1.レイアウト

メンバーにメモリスペースを割り当てる場合、割り当ての順序は、次の構造に示すように、構造を宣言する順序と一致します。

struct ceshi
{
    char frist;
    int second;
    char three;
};

メモリ内のレイアウトは次のようになります(タイプサイズ):

降順のメンバーは、スペースの浪費を減らすことができます。

この時点でのメモリ内のレイアウトは次のようになります。

2.コンストラクターを追加せず、初期化リストを使用して{}を初期化すると、メンバーはデフォルトの順序で初期化されます。

struct ceshi
{
    int frist;
    int second;
};

#define debug qDebug()<<
int main(int argc, char *argv[])
{
    ceshi c1{2,4};// frist = 2 second = 4
    ceshi c2{6};// frist = 2 second执行默认初始化 = 0
}

 

おすすめ

転載: blog.csdn.net/kenfan1647/article/details/113815072