【发布时间】:2012-07-10 11:32:00
【问题描述】:
我的 VS 项目中有以下文件:
// list.h
#include "node.h"
typedef struct list list_t;
void push_back(list_t* list_ptr, void* item);
// node.h
typedef struct node node_t;
// node.c
#include "node.h"
struct node
{
node_t* next;
};
// list.c
#include "list.h"
struct list
{
node_t* head;
};
void push_back(list_t* list_ptr, void* item)
{
if(!list_ptr)
return;
node_t* node_ptr; // Here I have two compiler errors
}
我有编译器错误:Compiler Error C2275 和 Compiler Error C2065。
为什么?我该如何解决这个问题?
【问题讨论】:
-
我在
list_t收到编译器错误。该类型尚未定义。 -
你有
#includedlist.c中的头文件吗? -
@Nick:换一种说法;如果你只用上面的代码创建一个新项目,你会得到完全相同的错误信息吗?这个非常重要;如果您要询问有关编译器错误消息/语法错误的问题,您需要准确说明您正在使用的代码,否则人们会猜测。
-
@OliCharlesworth 暗示的是,如果没有SSCCE,很难回答这类问题。
-
旁注:尽量避免使用后缀
_t。除了无用之外,它也是reserved by POSIX。您可以放心地写typedef struct node node并使用node而不是引入node_t。
标签: c compiler-errors