gpt4 book ai didi

用typedef定义类型详细总结

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章用typedef定义类型详细总结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

除了可以直接使用C提供的标准类型名(如:int ,char ,float,double,long等)和自己声明的结构体、共用体、枚举类型外,还可以使用typedef声明 新的类型名 来代替 已有的 类型名。如:

typedef int INTEGER,

typedef float REAL,

指定用INTEGER代表int类型,REAL代表float类型,这样,下面的两行等价:

1)int i,j;  float a,b,

2)INTEGER i,j;   REAL a,b,

可以声明结构体类型: typedef struct 。

{       int month,

      int day,

      int year,

}DATE,

声明了新类型DATE,这时就可以使用DATE定义变量: DATE birthday(不要写成 struct DATE birthday;);DATE* p;//指向结构体类型的指针.

还可以进一步:

1)typedef int NUM[10];//声明整型数组类型 。

    NUM n;//定义n为整型数组变量,其中n[0]--n[9]可用 。

2)typedef char* STRING;//声明STRING为字符指针类型 。

    STRING p,s[10];//p为字符指针变量,s为指针数组 。

3)typedef int (*POINTER)();//声明POINTER为指向函数的指针类型,该函数返回整型值,没有参数 。

    POINTER P1,P2;//p1,p2为POINTER类型的指针变量 。

说明:

      1)用typedef可以声明各种类型名,但不能用来定义变量,用typedef可以声明数组类型、字符串类型、使用比较方便.

例如:定义数组,原来是用:int a[10],b[10],c[10],d[10];由于都是一维数组,大小也相同,可以先将此数组类型声明为一个名字:

typedef int ARR[10],

然后用ARR去定义数组变量:

ARR a,b,c,d;//ARR为数组类型,它包含10个元素。因此a,b,c,d都被定义为一维数组,含10个元素。可以看到,用typedef可以将 数组类型 和 数组变量 分离开来,利用数组类型可以定义多个数组变量。同样可以定义字符串类型、指针类型等.

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

      3)typedef与#define有相似之处,但事实上二者是不同的,#define是在 预编译 时处理,它只能做简单的字符串替换,而typedef是在 编译时 处理的。它并不是做简单的字符串替换,而是采用如同 定义变量 的方法那样来 声明 一个类型.

例如:typedef int COUNT;和#define COUNT int的作用都是用COUNT代表int,单事实上它们二者是不同的.

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

      5)typedef有利于程序的通用与移植.

最后此篇关于用typedef定义类型详细总结的文章就讲到这里了,如果你想了解更多关于用typedef定义类型详细总结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com