【发布时间】:2013-03-22 01:56:48
【问题描述】:
我必须在C中实现一个Linked List,根据项目规范,我的头文件中必须创建以下结构:
typedef struct node {
char *string;
struct node* next;
}
typedef struct {
node *head; /* could have been struct node* as well */
node *tail;
} list;
现在如何使这些在我的 .C 文件中可用?我已经 #included 头文件,但是当我尝试调用例如 myList.head 时,我不断收到错误消息,指出我正在尝试对不是结构或联合的东西执行操作,所以我该怎么做解决这个问题?
【问题讨论】:
-
附注,据我所知,.C 是 C++ 文件而不是 C 文件的常规扩展名,至少在使用 gcc 时是这样
-
头文件应该叫
myList.h,而不是.head。如有其他问题,请始终包含编译器的实际错误消息。过多的信息会因为释义而丢失。 -
@Kay "头文件应该叫 myList.h,而不是 .head" -- 嗯,很明显 'myList' 是
list*,不是文件名,还有 @987654325 @ 是list的成员,而不是文件扩展名,并且 OP 想要myList->head。 “myList->head”将是一个有问题的文件名。 -
@AdelQodmani 这不适用于主流操作系统,它忽略了文件名的大小写。
-
@JimBalter Windows 保留文件名的大小写。这就是编译器所需要的。不过,我对 myList.head 的解释是错误的。
标签: c struct header structure declare