关于linux多文件编译的问题

mian.c
struct student{
......
};

fun.c
fun(struct student){
}

fun函数是mian中的功能函数,但是,是一个单独的c源文件,所以在编译时分别
gcc -c fun.c -o fun.o
gcc -c main.c -o main.o

gcc main.o fun.o -o main

但是因为struct定义在main中gcc -c fun.c -o fun.o编译不过
而在main中再定义会报错

main加上

 #include <fun.c>

直接编译main.c

struct定义应该放在h台头文件中,然后用到的c文件包含h文件。这样就可以编译通过了

gcc -o output fun.c main.c