搜索
写经验 领红包
 > 职场

c语言共用体有什么用(c语言共用体的赋值和输出)

导语:C语言共用体类型,有什么特性?整理、归纳、总结 linux C第67讲

共用体类型的特性

(1) 共用体类型的容量

共用体类型可以有多个成员变量,但是,这些成员变量存储在同一个内存空间。所以,共用体类型变量的容量,是由容量最大的成员变量决定。例如:

可以看到,union test共用体有2个成员变量,分别是char a和int b。那么,union test类型的容量,就是由其容量最大的成员变量b决定,所以,其容量是4个字节。union test1共用体的容量,由其容量最大的成员变量c决定,所以,其容量是8个字节。

(2) 共用体变量的值,只保留最后一次设置的数值。例如:

可以看到,共用体变量t中的成员变量a, b, c共用一个内存块。所以,给其中任何一个成员变量赋值的时候,都设置到共用内存块中。

那么,只要修改了共用内存块的数据,那么,所有成员变量的数据都被修改。所以,共用内存块中的数据只存放最后一次修改的数据,那么,共用体变量中所有成员变量的值,就更新到最后一次设置给共用内存块的值。

共用体类型与结构体类型使用相似,可以定义共用体类型数组,例如:

union test array[100];

此时,array[0], array[1]这样的元素,就是一个union test共用体变量。

总结

本章节我们学习了C语言的共用体类型,使用共用体类型,可以给多个类型的变量,定义使用同一块内存空间。

在Linux内核中经常使用到共用体类型,因为,内核需要处理各种不同的业务逻辑,而且,使用同一个接口,那么,就可以使用共用体类型来定义一块共享的内存空间,可以让多个类型的成员变量共同使用。

读者要仔细分析,掌握好每一个知识点,然后,自己总结出对该知识点的理解。自己总结出来的知识,理解才深刻,才是自己掌握的知识。

本文内容由小滢整理编辑!