typedef in c

typedef in c

以前看c的书,总是在说,typedef是创建一种自定义定义类型,然后就开始举若干例子,让人产生这样的错觉,就是typedef就像define一样,是把自己定义的类型字符去替换以后的字符,事实上,typedef在语法上和static,extern一样,是一种前缀。
 
例如:typedef int TInt;
 
这种类型的用法,就会让人明显感到以后出现TInt的地方,就用int来替换,是不是跟define一样呢?可是如果这样的定义:
 
typedef int *PInt;
 
这种又如何解释呢?
 
更进一步的,这样的:
typedef int (*PFI)(char *, char *);
怎么办,完全不能理解了,不是么?这个时候,就像前面说的,把typedef先拿开,不正是一个申明FPI的函数指针么,以后就明白了,凡是用FPI定义的类型,都是这种的函数指针变量,甚至就可以把FPI字符换成你定义的字符,到typedef这句里面来理解,所以,说typedef像define,可是处理时,要说明替换的地方,是定义的字符,另外注意,这里用define只是帮助理解,typedef并非预编译命令。

Leave a Reply

Your email address will not be published. Required fields are marked *