typedef 用法一句话总结———给数据的类型定义别名
(1)我们熟悉的int类型 定义一个变量, 如int a;
突然,我觉得 int 有点长,于是把int改为单个字母 T; 如 typedef int T;
T a = int a;
#include <stdio.h>
typedef int T;
int main()
{
int a =100;
printf("a = %d\n",a);
printf("%d\n",sizeof(a));
T b=10;
printf("b = %d\n", b);
printf("%d\n",sizeof(b));
return 0;
}
运行结果:
a = 10
4
b = 10
4
(2)为基本数据类型定义新的类型名
比如跨平台时,有的机子不支持long double,但有需要高精度的一个类型参与计算,那就可以进行如下定义
typedef long double ACCURACY;//当跨平台时,只需修改long double的类型就可以了,如下
typedef double ACCURACY;
(3)为指针定义简洁的名称
#include <stdio.h>
typedef int *B;
int main()
{
B bb;
*bb=12;
printf("bb=%p\n",bb);
printf("*bb=%d\n",*bb);
return 0;
}
运行结果:
bb=0x100f34000
*bb=12
(4)为数组定义简洁的类型名称
与为基本数据类型定义新的别名方法一样,示例代码如下所示:
// 定义一个int类型长度为100的数据类型别名
typedef int INT_ARRAY_100[100];
INT_ARRAY_100 arr;
(5)为结构体定义简洁的类型名称
#include<stdio.h>
//结构体
typedef struct node
{
int data;
struct node *next;
} * Pnode,Node;
Pnode pointer_n;
Node n;
PNode 等价于 struct node * ;
Node 等价于 struct node;