Posted on 2010-07-13 21:55
S.l.e!ep.¢% 阅读(571)
评论(0) 编辑 收藏 引用 所属分类:
C++
15. Typedef
在
C
语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:
#define dPS struct s *
typedef struct s * tPS;
以上两种情况的意图都是要定义
dPS
和
tPS
作为一个指向结构
s
指针。哪种方法更好呢?(如果有的话)为什么?
这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:
typedef
更好。思考下面的例子:
dPS p1,p2;
tPS p3,p4;
第一个扩展为
struct s * p1, p2;
上面的代码定义
p1
为一个指向结构的指,
p2
为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了
p3
和
p4
两个指针。