结构体位段
#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;
}
本文详细介绍了C语言中结构体位段、联合及枚举的基本概念和使用方法。通过具体实例展示了结构体位段如何节省内存空间,联合如何实现不同数据类型共享同一段内存,以及枚举如何定义一组命名的整数常量。
922

被折叠的 条评论
为什么被折叠?



