我正在开始使用C编程。我目前有一个包含很多功能的大文件。我想将这些函数移动到一个单独的文件中,以便代码更易于阅读。然而,我似乎无法弄清楚如何正确地包含/编译,并且找不到我找到的任何在线教程中的示例。这里有一个简化的例子:如何将C函数移动到单独的文件中?
#include <stdlib.h>
#include <stdio.h>
void func1(void) {
printf("Function 1!\n");
}
void func2(void) {
printf("Function 2!\n");
}
int main(void) {
func1();
func2();
return 0;
}
如何将C函数移动到单独的文件中?仅供参考:我正在使用gcc。
更新:这些答案非常有帮助,谢谢。现在看来,我的简化例子不够好,因为我意识到我的程序未能编译的原因是因为我在我的函数中使用了全局变量。
#include <stdlib.h>
#include <stdio.h>
int counter = 0;
void func1(void) {
printf("Function 1!\n");
counter++;
}
int main(void) {
func1();
return 0;
}
移动这些功能到外部文件不起作用,因为它们需要引用这个全局变量:
#include <stdlib.h>
#include <stdio.h>
#include "functions.c"
int counter = 0;
int main(void) {
func1();
counter = 100;
return 0;
}
我怎样才能解决这个问题得到什么?
只需将函数定义剪切并粘贴到另一个文件中,然后使用函数声明创建一个头部。您需要将此头文件包含到使用'main()'的文件中。您现在需要编译并链接每个源文件,编写诸如'gcc -o program main.c functions.c'之类的东西。 – 2013-11-01 18:26:32
请参阅:[在C中使用'.h'文件的好记录模式是什么?](http://stackoverflow.com/questions/256277)和[我应该在头文件中使用'#include'吗?]( http://stackoverflow.com/questions/1804486)获取相关信息。 –
谢谢@JonathanLeffler – Andrew