硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3466|回复: 4
收起左侧

[技术讨论] 【每日一题:0827签到】C语言的define 与 typedef ,大家快来试试!

[复制链接]

42

主题

81

回帖

207

积分

高级会员

积分
207
发表于 2020-8-27 09:15:32 | 显示全部楼层 |阅读模式
题目目的:

Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。

思考一下:
  1. #define dPS struct s *

  2. typedef struct s * tPS;
复制代码

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































答案和解释:请回复后查看

这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子:
  dPS p1,p2;
  tPS p3,p4;
  第一个扩展为
  struct s * p1, p2;
  
上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。



回复

使用道具 举报

5

主题

521

回帖

536

积分

金牌会员

积分
536
发表于 2020-8-27 10:20:11 | 显示全部楼层
好。。。。。。。。。。。。。。
回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
QQ
发表于 2020-9-25 09:53:09 | 显示全部楼层
ssssssssssssssssssss
回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
QQ
发表于 2020-9-25 09:53:48 | 显示全部楼层
dddddddddddddddddd
回复

使用道具 举报

5

主题

13

回帖

28

积分

新手上路

积分
28
发表于 2020-9-25 12:42:49 | 显示全部楼层
讲道理,,,这是c语言初学者都应该知道的问题呀,,,,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-29 08:45 , Processed in 0.197108 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表