汉扬编程 编程大纲 嵌入式开发-C语言高级编程-共同体和typedef

嵌入式开发-C语言高级编程-共同体和typedef

1、共同体什么是共同体:在C语方中,不同数据类型的数据可以使用共同的存储区域,这种数据类型称为共同体。 结构体中的成员在内存中是平铺的,每个成员都有自己的独立的内存空间,共同体中的成员则 是共用一块内存的,其占用内存的大小是共同体中所占空间最大的成员的类型长度。 一般形式如下:union 共同体名{ 成员列表; }例如:union person{ int age; int sex; char name;}这里定义了一个共同体类型有 unino person 字是由三个成员组成,三个成员在内存中使用共同的存储空间。由于共同体中各成员的数据长度往往不同,所以共同体变量在存储时总是按其中成员中数据长度最大的成员占用内存空间。#include <stdio.h>#include <string.h>union person{ int age; char name[10];};int main(){ union person p; printf("%ld %ld\\n",sizeof(char),sizeof(int)); printf("%ld \\n",sizeof(union person)); p.age =10; strcpy(p.name,"copy"); printf("%#x %s\\n",p.age,p.name); printf("%p %p \\n",&p.age,&p.name); return 0;}1 412 0x79706f63 copy0x7ffdeefe6b6c 0x7ffdeefe6b6c2、typedef在C语言中经常在定义结构体类型时使用typedef,例如typedef struct _node_{ int age; char name[10]; struct _node_ *next;} listnode, *linklist;这里定义了两个新的数据类型 listnode 和linklist.其中listnode等价于数据类型 struct _node_ 而linklist等价于 struct _node_ *#include <stdio.h>#include <string.h>typedef struct person{ int age; char name[10];}listperson, *linklist ;int main(){ listperson p1; linklist p; p =&p1; p->age =10; strcpy(p->name,"copy"); printf("%d %s \\n",p->age,p->name); return 0;}

嵌入式开发-C语言高级编程-共同体和typedef

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6968.html

求C语言标准库函数的源码

什么是“代码源”?我怎样改变BLOG中鼠标的图案?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部