找不到C结构类型,包括库,错误“未知类型名称”

时间:2019-08-27 21:00:49

标签: c struct compiler-errors include

我没有找到解决一个非常简单的问题的方法。

文件“ commons.h”:

struct test_struct{
   int a;
}

文件“ work.c”:

#include "commons.h"
void myfunction(test_struct this_is_a_test){
// ....
}

我做什么:

gcc commons.c -c -o commons.o    (no errors)
gcc work.c -c -o work.o ( "unknown type name "test_struct")

我在做什么错?

我还有另一个.c文件,其中包含“ commons.h”,并且在编译一切都很好时,只有与work.c文件一起出现错误。

1 个答案:

答案 0 :(得分:1)

您的头文件仅定义struct test_struct,而不定义test_struct。您需要一个typedef,以便您无需先说struct就可以引用它。

typedef struct test_struct {
    int a;
} test_struct;

或更改work.c以使用struct

void myfunction(struct test_struct this_is_a_test) {
    //...
}