测试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的数据,完全符合预期
|