1. 程式人生 > >C語言第10課——共用體

C語言第10課——共用體

共用體是一種特殊的資料型別,允許在相同的記憶體位置儲存不同的資料型別。

可以定義一個帶有多成員的共用體,但是任何時候只能有一個成員帶有值。

共用體提供了一種使用相同的記憶體位置的有效方式。

#include <stdio.h>
#include <string.h>

union Data                //定義共用體
{
	int i;
	float f;
	char  str[20];
};

int main()
{
	union Data data;

	data.i = 10;
	printf("data.i : %d\n", data.i);

	data.f = 220.5;
	printf("data.f : %f\n", data.f);

	strcpy(data.str, "C Programming");
	printf("data.str : %s\n", data.str);

	return 0;
}

Data 型別的變數可以儲存一個整數、一個浮點數,或者一個字串。這意味著一個變數(相同的記憶體位置)可以儲存多個多種型別的資料。可以根據需要在一個共用體內使用任何內建的或者使用者自定義的資料型別。

共用體佔用的記憶體應足夠儲存共用體中最大的成員。例如,在上面的例項中,Data 將佔用 20 個位元組的記憶體空間,因為在各個成員中,字串所佔用的空間是最大的。