用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有利于程序的通用与移植。
相关文章
Golang中的自定义类型之间的转换的实现(type conversion)
这篇文章主要介绍了Golang中的自定义类型之间的转换的实现(type conversion),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-21- 在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多,typedef与#define有些相似,其实是不同的,特别是在一些复杂的用法上,需要的朋友可以参考下...2020-04-25
- 除了可以直接使用C提供的标准类型名(如:int ,char ,float,double,long等)和自己声明的结构体、共用体、枚举类型外,还可以使用typedef声明 新的类型名 来代替 已有的 类型名...2020-04-25
- 以下是对C/C++语言中,typedef和#define的用法以及区别进行了详细的介绍,需要的朋友可以过来参考下...2020-04-25
- 用typedef可以声明各种类型名,但不能用来定义变量,用typedef可以声明数组类型、字符串类型、使用比较方便...2020-04-25
- 这篇文章主要介绍了C++中typedef 及其与struct的结合使用,需要的朋友可以参考下...2020-04-25
- 以下是对C语言中的typedef与复杂函数声明问题进行了详细的分析介绍,需要的朋友可以过来参考下...2020-04-25
- 以下是对C语言中typedef的四个用途进行了详细的分析介绍,需要的朋友可以过来参考下...2020-04-25
- 这篇文章主要介绍了C/C++中的typedef和#define详解的相关资料,需要的朋友可以参考下...2020-04-25
- C/C++中关键字typedef的理解不是多透彻,今天小编抽空给大家分享下C及C++中typedef的简单使用介绍,需要的朋友可以参考下...2020-04-25
- 本篇文章是对typedef的用法进行了详细的分析介绍,需要的朋友参考下...2020-04-25
C语言基础知识点解析(extern,static,typedef,const)
本篇文章是对C语言基础知识点(extern,static,typedef,const)的用法进行了详细的分析介绍,需要的朋友可以过来参考下...2020-04-25- 本篇文章是对C语言中#define与typedef的互换细节进行了详细的分析介绍,需要的朋友参考下...2020-04-25
- 本篇文章主要是对typedef struct与struct之间的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助...2020-04-25
- 本文主要介绍C语言 typedef,这里整理了相关资料及简单示例代码帮助大家学习理解,有兴趣的小伙伴可以参考下...2020-04-25
- 这篇文章主要介绍了C++中typedef 与 #define 的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-06