定义基本类型的别名
#include <stdio.h>
typedef int Integer;
int main(void)
{
Integer a = 5,b = 10;
printf("%d\n",a+b);
return 0;
}
/*
typedef不是必须声明在函数外,也可以声明在一个函数中,只不过只有该函数才可以使用声明的类型别名;
typedef修饰的语句看起来像是定义了一个变量,其实变量的位置只是类型的别名,如果把类型说明符后面的当作变量,编译器会提示变量未定义。
*/
定义复合类型的别名
#include <stdio.h>
typedef struct student
{
char *name;
int age;
}stu,*s;
int main(void)
{
stu a;
s b;
a.name = "sam";
a.age = 15;
b = &a;
printf("%s\n%d\n",b->name,b->age);
return 0;
}
/*
可以看出,在使用student的别名定义结构体变量与结构体指针变量时,并没有使用struct关键字,所以用typedef修饰的结构体,在定义变量时可以不使用struct关键字;
typedef在给基本数据类型取别名时,类型说明符后面的是类型的别名,不是变量,那么同样,在student结构体的最后是student类型的别名和一个指向student的指针类型的别名,不是结构体变量和结构体指针变量。
*/
知乎: @张赐荣
赐荣博客: www.prc.cx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!