如何将C语言中的源代码分割成不同的文件?

如何将C语言中的源代码分割成不同的文件?,c,C,我试图阅读其他人的代码,但大多数代码被分解成单独的文件。我还没学会怎么做。如何将代码拆分为单独的文件?如何为函数找到正确的源代码文件?关键技术是使用“头文件”(即.h文件)来公开每个“源文件”(即.c文件)的“应从外部可见”部分。要跨多个文件查找源,请参见,除非您使用的IDE提供了更好的方法 研究使用#include预处理器指令#基本上包括在放置文件的行上插入指定文件的副本。这允许您将源代码模块化为多个文件,同时将所有文件编译在一起 请参阅:可以在“.h”文件(也称为“头文件”)中声明函数(即函

我试图阅读其他人的代码,但大多数代码被分解成单独的文件。我还没学会怎么做。如何将代码拆分为单独的文件?如何为函数找到正确的源代码文件?

关键技术是使用“头文件”(即
.h
文件)来公开每个“源文件”(即
.c
文件)的“应从外部可见”部分。要跨多个文件查找源,请参见,除非您使用的IDE提供了更好的方法

研究使用#include预处理器指令#基本上包括在放置文件的行上插入指定文件的副本。这允许您将源代码模块化为多个文件,同时将所有文件编译在一起


请参阅:

可以在“.h”文件(也称为“头文件”)中声明函数(即函数返回类型、名称和参数类型)

这些函数的定义(即为函数编写的代码)应在“.c”文件中

该“.c”文件的顶部应该有一个include指令。看起来是这样的:

#include "myHeaderFile.h"
现在,为了在Linux/Mac/Windows+cygwin中找到函数的正确源代码,我只需在命令提示符下使用grep:

grep functionName *.c

关于CTAG和cscope的简要说明

如果代码位于名为src/的目录中,则可以执行此操作

#!/bin/sh
find src/ -name '*.c' >  cscope.files
find src/ -name '*.C' >> cscope.files
find src/ -name '*.h' >> cscope.files
find src/ -name '*.H' >> cscope.files
ctags -R -V --c-kinds=+p --fields=+S -L cscope.files 
cscope -b
现在,您使用ctags和vim并直接跳转到名为main的函数,其中包括:

gvim -t main
在另一个问题中,你可以找到其他一些好问题, 因此,我将不深入讨论这个问题


/Johan

单个源文件应包含一组(最好是密切相关的)函数。它应该为源文件之外的函数提供一组一致的服务

源文件应该有一个与之关联的头文件,该头文件声明了源代码提供的服务。(例外:包含
main()
且不提供其他文件使用的函数的单个源文件不需要头文件。)

使用这些函数的其他文件包括标题。定义函数的文件还包括头文件,以确保定义与声明匹配

通常,源文件最好首先包含头文件;这样可以确保标头可以“独立”使用。也就是说,如果其他一些源文件需要使用头的服务,它可以包含头,而不必担心应该首先包含哪些其他头