天天看點

C的union聯合體(共用體)和enum枚舉

如何了解聯合體,我們通過以下的代碼可以清晰明白:

#include "stdlib.h"
#include "stdio.h"
//聯合體(共用體)
//不同類型的變量共同占用一段記憶體(互相覆寫),聯合變量任何時刻隻有一個成員存在,節省記憶體
//聯合體變量的大小=最大的成員所占的位元組數
//比喻:同穿一條褲子
union MyValue
{
	int x;
	int y;
	double z;
};

void main(){
	union MyValue dl;
	dl.x = 90;
	dl.y = 100;
	//dl.z = 23.5;
	printf("聯合體最後一次指派有效:\n");
	printf("同整數型x:%d,同整數型y:%d,\n小數型:%lf\n", dl.x, dl.y, dl.z);
	
	dl.z = 23.5;
	printf("同整數型x:%d,同整數型y:%d,\n小數型:%lf\n", dl.x, dl.y, dl.z);
	system("pause");
}
           

編譯結果:

C的union聯合體(共用體)和enum枚舉

如何了解枚舉,還是用最直覺的代碼形式:

#include "stdlib.h"
#include "stdio.h"
//類型為整數常量
enum Day
{
		Monday = 0,
		Tuesday = 1,
		Wednesday = 2,
		Thursday = 3,
		Friday = 4,
		Saturday = 5,
		Sunday = 6
};
void main(){
	//枚舉的值,必須是括号中的值
	enum Day d = Tuesday;
	printf("%#x,%d\n", &d, d);
	getchar();
}
           

結果如下:

C的union聯合體(共用體)和enum枚舉

繼續閱讀