c语言中什么是共用体?

来源:百度知道 编辑:UC知道 时间:2024/06/10 01:16:49
比如学校人员的数据管理,教师的数据包括;编号,姓名,性别,职务.
学生的数据包括;编号,姓名.性别.班号.
如果将两种数据同放一个表格中,那么有一栏,对于教师登记教师的'职务'对于学生则为'学号'(对于同一人员不可能同时出现).
括号里是什么意思?
原文在这http://www.du8.com/readsep/sepbm0e/210.html#contxt
例【10.10】

共用体是一种特殊的结构变量,他的成员共用同一个内存空间,比如括号所在的内容应该这样输入:
union abc
{
char[10] zhiwu;
long xuehao;
};
因为zhiwu和xuehao 是占用同一段内存空间的,确切的说是他们的存放空间首地址相同,所以他们是无法单独存在的,拥有这个共用体的结构只能拥有zhiwu 或xuehao ,如果对zhiwu赋值,再对xuehao赋值,xuehao覆盖了zhiwu,zhiwu变为没有意义的了,反之一样,所以不可能同时出现

我讲一个计算机中的应用哈。。
公用体就是多个变量名,共用同一个内存空间。
比如,AX寄存器是2Byte
而AH、AL就分别是AX的高字节和低字节。
这样就可以直接对AX赋值,也可以只对它的高字节或低字节赋值了。。
在dos.h中就定义了union REGS。