[技术手册] Typedef 在C语言中应用

[复制链接]
745|4
 楼主| AdaMaYun 发表于 2023-12-18 14:00 | 显示全部楼层 |阅读模式
Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:

  1. #define dPS struct s *
  2. typedef struct s * tPS;

以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?

考察点:

这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子:

  1. dPS p1,p2;
  2. tPS p3,p4;

第一个扩展为

  1. struct s * p1, p2;

上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。

jf101 发表于 2023-12-19 09:17 | 显示全部楼层
指针和结构体确实是C++中的重要工具
中国龙芯CDX 发表于 2023-12-21 09:22 | 显示全部楼层
其实还是简单易懂的比较好!更通俗
星辰大海不退缩 发表于 2023-12-21 12:23 | 显示全部楼层
指针是不是定义明白清晰比较好
szt1993 发表于 2023-12-22 13:04 | 显示全部楼层
对于具体细节还是有点不清楚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

308

主题

2692

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部