我有两个结构需要包含彼此的指针。但是当我尝试将它们定义如下时,我会收到警告。
我需要知道在使用另一个结构之前是否需要编写声明。
typedef struct
{
char *nameBook;
char *auother;
ppl*p;
}book;
typedef struct
{
char *firstName;
char *lastname;
int id;
book **books;
int num_of_your_books;
}ppl;
答案 0 :(得分:1)
您需要对其中一个结构进行前向声明以引用另一个结构,并且您需要给结构本身命名,以便可以在没有typedef的情况下引用它们:
struct ppl;
typedef struct book
{
char *nameBook;
char *auother;
struct ppl *p;
}book;
typedef struct ppl
{
char *firstName;
char *lastname;
int id;
struct book **books;
int num_of_your_books;
}ppl;