未知的类型名称"列表"关于C程序

时间:2017-01-24 10:19:21

标签: c

我在更多文件.c和.h上拆分程序时遇到问题 在main.c上我放了一个类似

的结构
struct listnumbers {
  float number;
  struct listnumbers *next;
};typedef struct listnumbers *list;

当我需要编译所有文件时出现问题.c .h和compilator给我一个错误,比如Unknown type name" list" on sorting.h = void sorting(list * pt,float number)

2 个答案:

答案 0 :(得分:4)

C区分大小写。 Struct应为struct

C中结构的使用方法是

  1. 不要使用typedef来处理结构,它们没用,只能保存你输入struct关键字
  2. 在公共头文件中声明结构,#include仅在需要struct的文件中声明它。换句话说,编写一个正确的接口并将接口声明放在头文件中,接口实现在C文件中。

答案 1 :(得分:0)

您需要在使用结构的.h文件中定义结构。

sorted.h上的未知类型名称“list”试图告诉您,在处理sorting.h时,list未知。

您还可以通过组合typedef + struct来缩短ist定义。

typedef struct listnumbers {
  float number;
  struct listnumbers *next;
} *list;