结构体位段
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//结构体位段
struct S {
int a : 2;
int b : 5;
int c : 10;
int d : 30;
};
int main() {
struct S s;
printf("%d\n", sizeof(s));//8
return 0;
}
枚举
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
enum Sex {
//枚举的可能取值
MALE = 2,
FEMALE = 4,
SECRET = 8
};
enum Color {
RED,
YELLOW,
BLUE
};
int main() {
enum Sex s = MALE;
enum Color c = BLUE;
printf("%d %d %d\n", RED, YELLOW, BLUE);//0 1 2
printf("%d %d %d\n", MALE, FEMALE, SECRET);//2 4 8
return 0;
}
联合
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//联合
union Un {
char c;
int i;
};
int main() {
union Un u;
printf("%d\n", sizeof(u));//4
printf("%p\n", &u);//00BAFC64
printf("%p\n", &u.c);//00BAFC64
printf("%p\n", &u.i);//00BAFC64
return 0;
}