連合の概念、特徴、計算

目次

ユニオンのカスタマイズ

組合の特徴

和集合の計算


ユニオンのカスタマイズ

共用体は特別なカスタム型です。この型で定義される変数には一連のメンバーも含まれます。特徴は、これらのメンバーが同じ空間を共有することです (したがって、共用体は共用体とも呼ばれます)。たとえば、次のコード

//联合类型的声明
union Un
{
    char c;
    int i;
};

//联合变量的定义
union Un un;
//计算这个变量的大小
printf("%d\n",sizeof(un));

共用体のメンバーのアドレスは同じですが、異なるバイト サイズを占める場合があります。

コンソーシアムは一度に 1 人のメンバーのみを使用できます。

組合の特徴

共用体のメンバーは同じメモリ空間を共有するため、共用体変数のサイズは少なくとも最大のメンバーのサイズとなり、共用体は少なくとも最大のメンバーを保存できます。

現在のコンピュータのビッグ エンディアン ストレージとスモール エンディアン ストレージを決定する

int main()
{
    int a = 1;
    if(*(char *)&a == 1)
        printf("小端");
    else
        printf("大端");
    return 0;
}

//利用联合体进行判断大小端,因为是要利用int类型的第一个字节进行判断
int panduan()
{
	union Un
	{
		char c;
		int a;
	}u;
	u.a = 1;
	//if (u.c == 1)
	//{
	//	return 1;
	//}
	//else
	//{
	//	return 0;
	//}
    reuturn u.c;
}


int main()
{
	int ret;
	ret = panduan();
	if (ret == 1)
	{
		printf("小端");
	}
	else
	{
		printf("大端");
	}
	return 0;
}

和集合の計算

構造体とは異なり、共用体は一般にメンバー間でメモリの最大バイトを占有し、それが共用体のサイズになりますが、共用体のサイズはメンバー間の最大アライメント数の整数倍でもあります。

おすすめ

転載: blog.csdn.net/2301_77868664/article/details/130674455