关于C语言头文件的一点疑惑,该怎么处理

关于C语言头文件的一点疑惑
我写了三个文件,一个main.c,一个file.c,一个是file.h。现在想通过main.c调用file.c中的方法,可是不知道为什么不行呢,请高人指点。
main.c内容如下:
#include <stdio.h>

int main(void)
{
int a = 9, b = 8;
printf("%d\n",max(a, b));
return 0;
}

file.c内容如下:
int max(int a, int b)
return a > b ? a : b;
file.h内容如下:

#ifndef _FILE_H_
#define _FILE_H_
int max(int, int);
#endif

------解决方案--------------------
main里面include file.h
gcc -o test main.c file.c
------解决方案--------------------
main.c 加上 #include "file.h" 
或:extern int max(int, int);
------解决方案--------------------
main.c再加上
C/C++ code

 #include "file.h"

------解决方案--------------------
main里面包含一下要调用函数的声明,然后将用到的所有实现文件一同编译。