typedef函数介绍:
typedef是类型定义的意思,作用是给变量起小名,方便后面使用我们定义的小名来代指对应的变量。
typedef一般用法:
typedef oldName newName1,newName2,newName3;
//oldName只能写一个,newName却可以写好几个。
//oldName与newName之间是空格不是逗号,newName与newName之间是逗号
#include <stdio.h>
int main()
{
typedef int INT,zhengshu;//INT和zhengshu两个都是int类型变量的别名,两者等价
INT a = 1;
zhengshu b = 2;
printf("a = %d,b = %d\n",a,b);
printf("sizeof(a) = %d,sizeof(b) = %d\n",sizeof(a),sizeof(b));
}
//输出结果
//a = 1,b = 2
//sizeof(a) = 4,sizeof(b) = 4
typedef struct 是为了之后使用这个结构体定义变量时更方便。
一般定义一个结构体后(没使用typedef函数),声明变量时需要带上struct,看下面代码:
#include <stdio.h>
struct LNode{
int data;
struct LNode *next;
};
int main()
{
struct LNode a,b;//定义两个LNode类型的变量a,b,必须写上struct
a.data = 1;//没给b初始化,输出的b的data不知道是多少
printf("a = %d,b = %d",a.data,b.data);
}
定义结构体时(没用typedef),在定义的后面加上一些名字,这些是该结构体类型的变量,并不是该结果体的别名。看下面代码:
#include <stdio.h>
struct LNode{
int data;
struct LNode *next;
} NODE,temp;
int main()
{
NODE.data = 1;
temp.data = 2;
printf("NODE是个LNode类型的变量且值为%d \ntemp的也是个LNode类型的变量且值为%d",NODE.data,temp.data);
}
//输出结果
//NODE是个LNode类型的变量且值为1
//temp的也是个LNode类型的变量且值为2
typedef struct使用例子:
#include <stdio.h>
typedef struct LNode{
int data;
struct LNode *next;
} NODE,*tempPointer;
//NODE和tempPointer都是使用typedef定义的别名,
//只是,NODE是LNode类型的别名,tempPointer是内容为LNode的指针类型的别名
int main()
{
NODE a;
tempPointer p = &a;
a.data = 1;
printf("NODE是LNode类型的别名且a=%d \ntempPointer是LNode的指针类型且p指向a,p=%d",a.data,*p);
}
参考链接:
定义指针类型时*号位置与功能的关系
typedef struct 指针
结构体定义 typedef struct 用法详解和用法小结
C语言typedef的用法详解