typedef
//typedef:类型定义,给类型起外号(别名)
typedef unsigned long long int uint64;//大小8字节 表示64位无符号整数
typedef unsigned long int uint32;==typedef unsigned int uint32;//大小4字节 表示32位无符号整数
一:
之前我们学过一个宏定义,#define
现在我们就来区别一下 #define 和 typedef 的区别
可以看到我们假设定义的指针i,j,k,l
我们再用二级指针a,b,c,d来分别接收他们;
可以看到只有二级指针d不能接收l
我们看一下l和i,j,k的区别:
i是一级指针
-----------------------------------------------------------------------------------
j是一级指针
--------------------------------------------------------------------------
k是一级指针
--------------------------------------------------------------------------
我们可以看到l不是一级指针,是整形变量
我们看定义:
l是整形变量
我们可以得出结论:
①:#define 只是字符替换 无实际意义
②:typedef 是给数据类型起别名 有实际意义
例如:
pint i,j; //typedef int * Pint; 相当于 int *i, int *j;
PINT k,l; //#define PINT int * 相当于 int *i,j;
二:
识别typedef:
①:删除typedef ,查看变量类型。
②:添加typedef ,将变量提升为这种数据类型
我们在定义结构体时可以使用typedef
等于
这样在定义结构体时合理使用typedef可以更简洁