位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 用typedef定义类型

提问人:刘团圆发布时间:2020-12-02

typedef的使用形式如下:

    typedef  标准类型名  别名;

例如:

    typedef int INTEGER;

为标准类型int定义一个别名INTEGER,可以使用INTEGER来定义变量,如:

    INTEGER a.b;

也可以为用户定义的结构体等自定义类型定义一个别名,例如:

typedef struct student 

{

    int no;

    char name[10]; 

    int score;

}STU;

这样就为一个结构体类型struct student定义了一个别名STU。程序中凡是需要定义student类型变量或数组时,都可以使用STU定义。如:

    STU s1, s2;

定义两个student结构体型变量s1,s2。

    STU s[10];

定义一个student结构体型数组s,数组s中包含10个元素。

说明:

(1)用typedef只是给已有类型增加一个别名,并不能创造出新的类型。就如同人一样,除大名外,可以再取一个小名、笔名、艺名等。不管使用哪个名,人还是这个人,并不能创造出另一个人来。

(2)typedef%#define的比较:typedef与#define有相似之处,都是用实际类型替代同义词。 但它们实际是不一样的,区别为typedef由编译器在编译时执行的;而define是由预处理器在编译预处理时处理的,而且只能作简单的字符串替换。

(3)因为程序中使用typede可以定义一个更利于记忆的类型的别名,从而可以使程序更具有可读性。

    typedef除了可以为类型定义别名外,也可以为程序的书写带来其他便利。例如,需要定义大量的int型、长度为80的数据:

    int a [10]; 

    int b [80]; 

    int c [10];

    …

这样的定义非常繁琐,这时就可以使用typedef简化一下:

    type int ARR[80];

    ARR a.b.c;

这段代码的含义是,定义一个ARR为整型数组,其元素个数为80,之后用ARR定义数组a、b、c,这三个数组长度都为30。

typede他可以用在定义指针中,如:

    int *pl,p2;

可能程序员本意是想定义两个int型指针,但实际定义出来则是是指针,而p2是普通的整型变量,可以使用typedef对整型指针进行定义:

    typedef int* POINT;

    POINT pl,p2,p3;

这种定义方式尤其在需要定义大量指针时,优点更加突出。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部