我正在尝试为书架制作一个链表,但是当我编译它时说
In file included from libreria.c:3:0:
libreria.h:8:2: error: unknown type name ‘Book’
Book* next;
^
如果没有定义Book,就像。 这是头文件
#ifndef LIBRERIA_H
#define LIBRERIA_H
typedef struct Book {
char author[50];
char title[50];
int year;
Book* next;
} Book;
void newbook(Book* book);
#endif
有什么问题?
答案 0 :(得分:6)
在您的结构定义中,Book
的typedef尚未定义,因此您需要在该实例中使用struct Book
:
typedef struct Book {
char author[50];
char title[50];
int year;
struct Book* next;
} Book;
答案 1 :(得分:4)
在结构定义中,Book
不是尚未的类型。您需要使用struct Book
作为类型。
否则,您可以将typedef
置于结构定义之前,使Book
本身作为类型,如
typedef struct Book Book;
struct Book {
char author[50];
char title[50];
int year;
Book* next;
}