创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
c语言系列专栏: c语言之路重点知识整合
目录
定义格式与含义
一、基本类型的自定义
二、指针、数组类型的自定义
三、函数类型的自定义
四、嵌套定义
总结
定义格式与含义
模板: typedef 现有类型名 自定义名称
typedef就是重命名! 注意是类型名,即不同类型的特征。
将现有的类型名重命名为自定义名称,并且可以通过自定义名称进行变量操作。
方便阅读与编程语义的流畅性
例如:c语言中没有布尔类型,可以通过typedef命名一个布尔类型
#include <stdio.h>
typedef int BOOLEAN; //为现有int类型 命名一个新的类型 通常自定义类型名称为大写
int main ()
{
/* 模板: typedef 现有类型名 自定义名称 */
BOOLEAN sex = 1;
return 0;
}
这就是将int类型重命名为BOOLEAN类型,其本质还是int类型
一、基本类型的自定义
typedef int INTEGER;
int a;
INTEGER b;
typedef char BYTE;
BYTE c;
int a与INTEGER b等价,本质都是int a。BYTE本质为char类型。
二、指针、数组类型的自定义
将int* 类型重命名为PINT。 数组类型去掉数组名改为想改的自定义名。数组指针类型同理。
typedef int* PINT; //int *p = z,t,x;
PINT z, t, x;
typedef int FIVEINT[5];
FIVEINT a5 = { 1,2,3,4,5 };
FIVEINT* pa5 = &a5;
typedef int(*P_FIVEINT)[5];
P_FIVEINT pfi = &a5;
三、函数类型的自定义
通过对函数指针类型的重命名。 使用函数指针执行函数代码。
关于函数指针的知识点:c语言函数指针详解
double (*pmath)(double); //函数指针变量
typedef double (*PMATH)(double); //函数指针 类型
PMATH p = sqrt;
PMATH ps[4] = {sqrt,ceil,floor,fabs};
for (int i = 0; i < 4; i++)
{
printf("%f\n",ps[i](2.5));
}
四、嵌套定义
嵌套就是对命名后的名字再命名。无论进行多少次重命名,本质还是int类型。
#include <stdio.h>
/*4 嵌套定义 */
typedef int INTEGER;//新类型
typedef INTEGER* POINT_INT;//为新类型指针 创建另一个新类型
typedef POINT_INT* POINT_POINT_INT;
int main()
{
INTEGER a=10;
POINT_INT p=&a;
POINT_POINT_INT pp=&p;
printf("%d\n",a);
printf("%d\n",*p);
printf("%d\n",**pp);
return 0;
}
总结
typedef就是将现有的类型名重命名为自定义名称,方便阅读与编程语义的流畅性