typedef用法总结

typedef的用法一直理解的深度不够,今天在网查上了一些资料,理解的还算可以,然后做一下总结。

    网上的说法一般这样,typedef用法分为4类:1,变量取别名,例如 typedef char* PCHAR;PCHAR p与char* p等价,都是定义p为一个指向char类型的指针;2,是为了书写简洁,以前struct变量声明的时候,前面总是要加struct的,这样书写起来麻烦,typedef tagPOINT{int x;int y;}POINT;POINT p 与 struct tagPOINT p等价,都是定义p为一个TagPOINT类型的结构体;3,用typedef定义平台无关的类型,typedef long double REAL,typedef double REAL,等等。只需使用REAL,不用管平台如何;4,为复杂的声明定义一个简单的声明,例如typedef int (*A) (char, char),A b;b则是一个指针,指针指向函数,函数的返回值类型是int,参数类型是两个char。

    体会一下上面四种用途,其实完全可以归为一种形式,(以下是个人的理解)那就是:在利用typedef的时候,就像声明了一个变量一样,如上面的,typedef char* PCHAR;PCHAR就像声明的一个指向char型的指针;typedef tagPOINT{int x;int y;}POINT;POINT就像声明的一个struct tagPOINT类型变量;typedef double REAL;REAL就像声明的一个double类型变量;typedef int (*A) (char, char),A就像声明的是一个指针,指针指向函数,函数的返回值类型是int,参数类型是两个char;这四种情况都是这样,而当使用typedef定义的别名的时候,定义的变量其实和typedef中定义的变量类型(姑且认为别名是定义的变量)是一样的。例如A a;a的含义和上面所讲的A含义是一样的。

    可能理论上说不过去,但是可以这样理解,当遇到typedef的时候,就可以理解其中定义的变量的含义了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值