前言
typedef就是为现有的数据类型起别名。提高代码的可读性,简化复杂数据结构。
注意typedef要和define区别开,define是宏替换,编译的时候没有做相关检查,但typedef在编译时会做检查,且define常常是对常量进行替换,typedef是对数据类型进行替换。
且typedef和define在顺序上也有一些区别。
#define M 100;//将M替换为100
#define x first //define可以做关键字替换
#define y second
//但是typedef 不可以做类似的替换
/*
typedef first x;
tyepdef second y;
这种则是错误的,这种编译器会不知道first,second是什么东西
*/
typedef long long ll;//将ll表示long long数据类型
总之define更加灵活,而typedef更加安全
提示:以下是本篇文章正文内容,下面案例可供参考
typedef的使用
typedef existing_type new_type_name;
具体区分下来我们可以分为以下几类
1.给基本数据类型取别名
typedef int i;
typedef long long ll;
//编译器会自己判别基本数据类型,所以像long long数据类型即便中间有空格也不会错
2.给结构体等取别名
typedef struct{
int x;
int y;
} node;
3.创建函数指针别名
这种操作的语法有点反直觉
typedef void (*func)(int);
//创建名为func,返回值为void,形参味int的函数指针别名
void myfunc(int x){
return;
}
int main(){
func c = myfunc;
}