typedef的理解

1、首先明白typedef是一个整体,这区别与#define,#define可以当两部分来看。

例如:

typedef  int size_t;  //这个是一个整体,不能理解为用size_t 替换int

#define pi 3.14    //这个是用3.14直接替换pi即可。

小结:typedef 可以理解为一个前缀,然后 int size_t ; 的形式更像是形如定义变量 int  temp ; 的形式。

2、typedef应用举例:

1)简单数据类型的别名

例如:

typedef  int size_t;   //将int数据类型重起了个名字size_t

int  temp;     等价于   size_t   temp;

2)指针类型的别名

例如:

typedef   char*  pch; //将char* 指针重起了名字为 pch ,两个字符变为一个字符,书写更简单

char*  next;    等价于 pch next;

3)数组类型的别名

例如:

typedef  int num[10]; //将数组类型 int  [10] 重起了一个名字为num, 两个字符变为一个字符,书写更简单

int  a1[10];  等价于  num  a2;

a1[0] = 1;  等价于a2 [0] =1;   //使用的时候一样,只是定义的时候简单了。

4)结构体类型的别名

例如:

typedef  struct  unit{

int a;

char c;

} SUNIT;   //为结构体 struct unit{ int a; char c;}; 重起了个名字为SUNIT,结构更简单。

struct unit mystruct;     等价于   SUNIT  mystruct ;  

5)函数指针类型的别名

例如:

typedef  void (*func) (void);    //将函数指针 void (*) (void)  重命名为func。

void (*myfunc) (void);     等价于  func  myfunc;

总结:typedef不是两部分,不是后部分对前部分的替换,typedef是一个整体,其形式上,抛开typedef这个符号外,剩下的部分与定义变量的形式十分相似。

发布了25 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/modi000/article/details/102798939