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

[复制链接]
668|0
 楼主| jcky001 发表于 2021-3-19 09:54 | 显示全部楼层 |阅读模式
测试1,struct之前不定义struct想要达到的效果是f2能够定义一个指针变量,这个指针变量指向一个struct f1

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


那么,没有定义struct f1,我们要怎么用这个f2指针呢?如下是设想的一种用法:
强制使f2类型指针指向另一个定义了的结构体
163636macnj337m3njrrdm.jpg.thumb.jpg
我们预想f3被强制指向了struct f4。
上面看到有错误消息,unknown struct ‘f1’和undefined member‘n’
分析得到,()与->具有同等级的运算优先权,然后f3先与->结合了,在把f3强制转换为指向struct f4之前,f3保持了原来的指向struct f1,f1没有定义,当然也不会有成员n。

我们做出如下修改,以使f3先转为指向struct f4的指针
163642ckpa7rb7g579hv87.jpg.thumb.jpg
结果可以利用f2访问struct f4的数据,完全符合预期






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

本版积分规则

1650

主题

5706

帖子

6

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