如何引用彼此的两个结构

时间:2016-02-04 18:39:15

标签: c

我有两个结构需要包含彼此的指针。但是当我尝试将它们定义如下时,我会收到警告。

我需要知道在使用另一个结构之前是否需要编写声明。

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;

1 个答案:

答案 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;