www.5615.net > 关于C语言中typEDEF union和union的区别 ...

关于C语言中typEDEF union和union的区别 ...

typedef union 是把共用体重命名的写法.typedef详解如下:1、typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.2、这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等).3、在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明.4、格式 typedef 原类型名 新类型名

在存储多个成员信息时,编译器会自动给struct的每个成员分配存储空间,所以struct可以存储多个成员信息,而union的每个成员都用同一个存储空间.对union的不同成员赋值,将会对其他成员重写,这些成员原来的值就不存在了,而对struct的不同成员进行赋值是互不影响的.

你这个没写全.typedef是定义一个新类型,相当于给union student起了个别名.union是联合,union student是自定义的一个联合类型.

typedef union 定义联合体.typedef struct 定义结构体.联合体可以由不同类型的简单变量组合构成.结构体可以由不同类型的较复杂的变量组合构成.结构体里可以含联合体.联合体里不能含结构体.

共用体,故名思义,就是int n和char c共同这块内存,根本不存在区分,也无法区分.比如TElemType t = 0x1234 那么 t.n = 0x1234 t.c = 0x4 程序里你可以用t.n,也可以用t.c 总之,不需要判断是何种类型,也没办法判断

一个是结构体 一个是联合体

区别最大的是struct,C++中的struct几乎和class一样了,可以有成员函数,而C中的struct只能包含成员变量. enum,union没区别.

struct构造体中的每个成员计算机都分配了内存,而union共用体则不一样只分配了其中的一个

完全不一样.例如:书包;可以放置书本、笔盒、记事本等物.联合体,仅能放入一样东西的包(限制),其尺寸,是可放物品中,最大一件的体积.结构体,是能放入所有物品的包,所以其尺寸,可同时容纳多样物品.联合体,同时间只能有一个成员在内.或是说,可以用不同型态,去看同一组数据.结构体,可以包含多个成员在一起,成员都能个别操作.

struct Test{char name[10]; /*共10字节*/int score; /*2字节*/int number; /*2字节*/}stu;那么在内存中stu共占用10+2+2=1

网站地图

All rights reserved Powered by www.5615.net

copyright ©right 2010-2021。
www.5615.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com