c语言结构体嵌套自身存在的问题

Posted 帅气的黑桃J

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言结构体嵌套自身存在的问题相关的知识,希望对你有一定的参考价值。

问题描述

typedef struct
{
	A *data;
}A;

最初本人以这种形式构建结构体会发现,这种结构体的构建会出现问题,原因是因为A变量名的定义是在结构体定义结束之后才完成的,而结构体中定义的A这个时候还没有定义,所以这个结构体内无法识别到A

问题前提

1.为了在不在定义的时候使用struct A a而使用A a,则必须要使用typedef进行定义
2.为了在结构体的内部嵌套自身

因此以下只直接给出关于使用typedef定义的解决方案

解决方案

方式:在结构体定义之前先定义其typedef的变量名

typedef struct  _A_ A;
struct _A_
{
	A *data;
};

小技巧:struct定义的结构体名称可以以_data_的形式构成,用于区别

参考文献

相关解决方案1

以上是关于c语言结构体嵌套自身存在的问题的主要内容,如果未能解决你的问题,请参考以下文章