O conceito, características e cálculo do consórcio

Índice

Personalização da união

Características do sindicato

Cálculo da União


Personalização da união

Uma união é um tipo personalizado especial. As variáveis ​​definidas por este tipo também contêm uma série de membros. A característica é que esses membros compartilham o mesmo espaço (por isso a união também é chamada de união). Por exemplo, o seguinte código

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

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

Os endereços dos membros da união são iguais, mas podem ocupar tamanhos de bytes diferentes.

Um sindicato só pode usar um membro por vez.

Características do sindicato

Os membros de uma união compartilham o mesmo espaço de memória, portanto o tamanho de uma variável de união é pelo menos igual ao tamanho do maior membro, para que a união possa salvar pelo menos o maior membro.

Determine o tamanho e a endianidade do computador atual

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;
}

Cálculo da União

Diferente das estruturas, as uniões geralmente ocupam o maior byte de memória entre os membros, que é o tamanho da união, mas o tamanho da união também é um múltiplo inteiro do número máximo de alinhamento entre os membros.

Acho que você gosta

Origin blog.csdn.net/2301_77868664/article/details/130674455
Recomendado
Clasificación