C语言:typedef

来源:互联网 发布:ping和rtt区别知乎 编辑:程序博客网 时间:2024/05/17 22:47
 

typedef是用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字.

 

 用typedef定义类型的方法

① 先按定义变量的方法写出定义体(如:int i)。

② 将变量名换成新类型名(例如:将i换成COUNT)。

③ 在最前面加typedef. (例如:typedef int COUNT)。

④ 然后可以用新类型名去定义变量。

 

说明:

(1)用typedef可以声明各种类型名,但不能用来定义变量。

(2) 用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。

(3) 当不同源文件中用到同一类型数据时,常用typedef声明一些数据类型,把它们单独放在一个文件中,然后在需要用到它们的文件中用#include命令把它们包含进来。

(4) 使用typedef有利于程序的通用与移植。

(5) typedef与#define有相似之处,例如:typedef int COUNT;#define COUNT int的作用都是用COUNT代表int。但事实上,它们二者是不同的。#define是在预编译时处

的,它只能作简单的字符串替换,而typedef是在编译时处理的。实际上它并不是作简单的字符串替换,而是采用如同定义变量的方法那样来声明一个类型.


 

结构体与typedef

struct{

 int x;

 int y;

} test1;

定义了结构体test1, test1.x 和test1.y 可以在语句里用了。

 

struct test{

int x;

int y;

} test1;

定义了结构体test1,test1.x 和 test1.y 可以在语句里用了。与 前面相比,省写 了 test。

 

typedef  struct  test{

int x;

int y;

} text1,text2;

定义了结构体的(类型)别名叫text1 或叫text2。真正在语句里用,还要写:text1  te;   然后才可以用 te.x    te.y


typedef struct{

int x;

int y;

}test1;

同上一个一样,还要写: test1 my_st;  才能用 my_st.xmy_st.y

原创粉丝点击