typedef
来源:互联网 发布:管家婆的数据在哪里面 编辑:程序博客网 时间:2024/06/10 02:32
最近看Scintillia的源代码,总看到typedef的身影,朋友也说autodesk的面试官曾说过不懂typedef很差劲。于是查了网上的资料,看了几种比较
容易出错的常用用法,做了一些整理。
一.起别名的两种用法
1. typedef (int *) pInt;
2. typedef pInt (int *)
比如pInt a,b;
<!--more-->
第一种表示: int*a;int*b;
第二种表示: int*a,b;
所以第一种更像一个类型,第二种更像宏。
二.旧式代码中声明对象
typedef struct tagPoint
{
Int x;
Int y;
}POINT;
POINT a,b;
三.代码简化
为复杂的声明定义一个新的简单的别名
方法:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的就是原声明的最简化版
typedef int (*PF) (const char *, const char *);
这个声明引入了 PF 类型作为函数指针的同义字,该函数有两个 const char * 类型的参数以及一个 int 类型的返回值。
如果要使用下列形式的函数声明,那么上述这个 typedef 是不可或缺的:
PF Register(PF pf);
Register() 的参数是一个 PF 类型的回调函数,返回某个函数的地址,其署名与先前注册的名字相同。如果不用 typedef,那么代码是这样的:
int (*Register (int (*pf)(const char *, const char *)))(const char *, const char *);
- typedef
- typedef
- typedef
- typedef
- typedef- -
- typedef
- typedef
- typedef
- typedef
- typedef
- Typedef
- typedef
- typedef
- typedef
- typedef
- typedef
- typedef
- typedef
- as的xml遍历算法
- Oracle索引分析与比较(一)—— 各种索引的简要解释
- eclipse中显示代码行数
- FLEX小实验 一个简单的时钟
- C#控件系类
- typedef
- 2009-07-24 TIPTOP
- 上市公司股东组
- const和static的使用(转)
- 1247: 球迷购票问题
- 钩子详解
- 点击CRichEdit ctrl 后如何获得当前点击位置
- 第一篇
- jdbc 如何与 sql server 2000连接