很多时候,看到很多c函数的声明和实现是分开的。声明放在头文件,实现却放在另一个文件,最后函数被其他文件调用。
下面以简单例子说明。
一、声明部分
/* test.h */#includeint test_func(char *ptr); /* 声明函数 */
二、实现部分
/* test.c */#include "test.h"int test_func(char *ptr) /* 实现函数 */{ printf("%s\n", ptr); return 1;}
三、调用部分
/* run.c */#include "test.h"int main(int argc, char *argv){ char *ptr = "Hello, world!"; test_func(ptr); return 0;}
四、编译并运行
[zzb@localhost test]$ lsrun.c test.c test.h[zzb@localhost test]$ gcc test.c -c[zzb@localhost test]$ lsrun.c test.c test.h test.o[zzb@localhost test]$ gcc test.o run.c -o run[zzb@localhost test]$ lsrun run.c test.c test.h test.o[zzb@localhost test]$ ./run Hello, world!
最后编译记得把实现函数体部分test.o加进到run.c!