c语言sizeof函数用法 C语言union的用法?
C语言union的用法?Union本质上是C中的一个结构,它的用法类似于struct。当您使用联合名称{//。。。Member}若要声明类型,调用时应在nameUnion type name vari
C语言union的用法?
Union本质上是C中的一个结构,它的用法类似于struct。当您使用
联合名称{
//。。。Member
}若要声明
类型,调用时应在name
Union type name variable name
后缀表达式前添加关键字Union表达式标识符以
a.member1=10//a的形式调用成员是union
P->member1=20//P是指向union的指针
但有一些区别:
1。顾名思义,工会是许多成员共享一段记忆。在编译时,选择最长的成员进行声明。也就是说,在下面和程序片段中:
union a{//声明了三个成员,但是长度不同(sizeof的结果不同,但是机器的结果不同,但是double肯定是最长的),所以编译器会选择double的长度作为union a的长度
int A1//sizeof(int)=4
float A2//sizeof(float)=8
double A3//sizeof(double)=16]换句话说,内存中的上述联合声明等价于
struct a{
double A3
}
2。根据第一条的特点,在给联合成员赋值之后,需要注意的是,在使用时必须调用被赋值的成员。