C语言联合与枚举 #

一、联合体 #

1.1 什么是联合体 #

联合体的所有成员共享同一内存空间,大小等于最大成员的大小。

1.2 定义与使用 #

c
#include <stdio.h>

union Data {
    int i;
    float f;
    char c;
};

int main() {
    union Data data;
    
    data.i = 10;
    printf("int: %d\n", data.i);
    
    data.f = 3.14;
    printf("float: %f\n", data.f);
    
    data.c = 'A';
    printf("char: %c\n", data.c);
    
    printf("联合体大小: %zu\n", sizeof(data));
    return 0;
}

1.3 应用场景 #

  • 节省内存
  • 数据类型转换
  • 网络协议

二、枚举 #

2.1 什么是枚举 #

枚举是命名的整数常量集合。

2.2 定义与使用 #

c
#include <stdio.h>

enum Weekday {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
};

int main() {
    enum Weekday today = WEDNESDAY;
    
    printf("今天是周%d\n", today + 1);
    
    switch (today) {
        case SUNDAY:
            printf("休息日\n");
            break;
        case SATURDAY:
            printf("休息日\n");
            break;
        default:
            printf("工作日\n");
    }
    return 0;
}

2.3 指定值 #

c
enum Color {
    RED = 1,
    GREEN = 2,
    BLUE = 4
};

三、总结 #

类型 特点
联合体 成员共享内存
枚举 命名常量

下一步,让我们学习内存管理!

最后更新:2026-03-26