打印
[信息]

[资料] typedef struct之使用之前是否需要定义struct

[复制链接]
321|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2021-3-19 09:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
测试1,struct之前不定义struct想要达到的效果是f2能够定义一个指针变量,这个指针变量指向一个struct f1


上图可以看出,在typedef struct f1 *f2之前并不需要定义struct f1;


那么,没有定义struct f1,我们要怎么用这个f2指针呢?如下是设想的一种用法:
强制使f2类型指针指向另一个定义了的结构体

我们预想f3被强制指向了struct f4。
上面看到有错误消息,unknown struct ‘f1’和undefined member‘n’
分析得到,()与->具有同等级的运算优先权,然后f3先与->结合了,在把f3强制转换为指向struct f4之前,f3保持了原来的指向struct f1,f1没有定义,当然也不会有成员n。

我们做出如下修改,以使f3先转为指向struct f4的指针

结果可以利用f2访问struct f4的数据,完全符合预期






使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1482

主题

4260

帖子

6

粉丝