我没有找到解决一个非常简单的问题的方法。
文件“ 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文件一起出现错误。
答案 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) {
//...
}