共用体
# 1.0 什么是共用体
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。
如果你清楚结构体是什么,那么共用体简直易如反掌,我们来使用一个例子讲清楚共用体:
// 预处理指令
int main()
{
union BOOKS
{
char name[50];
char author[40];
int page;
int book_id;
} book1;
book1.page = 1000;
book1.book_id = 12569;
strcpy(book1.name, "Fake news");
strcpy(book1.author, "Donald Trump");
printf("book1.name: %s\n", book1.name);
printf("book1.author: %s\n", book1.author);
printf("book1.page: %d\n", book1.page);
printf("book1.book_id: %d\n", book1.book_id);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
输出的结果是:
book1.name: Donald Trump
book1.author: Donald Trump
book1.page: 1634627396
book1.book_id: 1634627396
1
2
3
4
2
3
4
这样你大概就知道了共用体与结构体的不同了:共用体之内只能储存一个数据,给结构体的任何一个元素赋值都会覆盖之前的数据
# 2.0 共用体的大小
共用体占用的内存应足够存储共用体中最大的成员
编辑 (opens new window)
上次更新: 2020/08/16, 12:08:00