📄 00000007.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: <A HREF="mailto:ax.bbs@bbs.ee.nthu.edu.tw.">ax.bbs@bbs.ee.nthu.edu.tw.</A> (athena), 信区: test <BR>标 题: 星星流讲座 0049 <BR>发信站: ☆清华电机☆ (Sun Jul 23 00:35:31 1995) <BR> <BR> <BR>第 7 讲 之 7 使用者自定型态 <BR> Topic: typedef <BR> <BR>有的时候我们宣告结构变数时,结构的名字实在又臭又长: <BR> <BR> struct sock_addr mysocket; <BR> <BR>这个时候你可以使用 typedef 这个指令: <BR> <BR> typedef struct sock_addr s_addr; <BR> s_addr mysocket; <BR> <BR>typedef 是用来造新的资料型态的名字用的,除了用在结构之 <BR>外,也可以用在基本的资料型态,例如下面是很常见的例子: <BR> <BR> typedef unsigned long u_long; <BR> typedef unsigned int u_int; <BR> typedef int socket_fd; <BR> <BR>typedef 可以用来给资料型态取别名 (alias),例如上面的例子里我们把 <BR>socket_fd 作为 int 的别名,这是为了提高程式的可读性: <BR> <BR> int fd; /* file descriptor, maybe for file or socket */ <BR> socket_fd fd; /* socket file descriptor */ <BR> <BR>typedef 也可以在结构定义时直接与结构连用,例如: <BR> <BR> typedef struct node* Treeptr; <BR> typedef struct node <BR> { <BR> int content; <BR> Treeptr lchild; <BR> Treeptr rchild; <BR> } Treenode; <BR> <BR>这个结构的名字叫做 node,而 Treenode 代表是 struct node 的型 <BR>态,Treeptr node* 代表是 struct node * 的型态。 (Treeptr 在 <BR>struct node 之前就定义了,这是合法的,因为 typedef 事实上是个 <BR>假指令 (pseudo command),只影响编译器,对程式码的产生并没有影 <BR>响,所以可以使用未经宣告的型态。) <BR> <BR>( typedef 定义指向函数的指标的部份,先偷吃起来 ^_^ ) <BR> <BR>-- <BR>本文原作者为徐振家,原作刊载於星星神教总坛 ☆清华电机☆ test 板。 <BR>你可以以电子文件的形式将本文自由流传於台湾学术网路,但必须包含此版权声明。 <BR>原作者依中华民国著作权法之规定,享有本文之著作权,请勿抄袭以免触法。 <BR>未经授权任何人不得以任何形式对本文做任何修改及商业上之应用。 <BR>其他网路的转载或其他用途的应用,请先知会作者,并取得其同意。 <BR>对本文有任何疑问或意见请 mail 给 <A HREF="mailto:ax.bbs@bbs.ee.nthu.edu.tw,谢谢。">ax.bbs@bbs.ee.nthu.edu.tw,谢谢。</A> <BR> <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -