如何将C中的源代码拆分为单独的文件?

时间:2009-06-03 05:20:34

标签: c

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

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

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

#include "myHeaderFile.h"

现在,要在Linux / Mac / Windows + cygwin中找到合适的源代码,我只需在命令提示符下使用grep:

grep functionName *.c

答案 2 :(得分:1)

查看使用#include预处理程序指令。 #include基本上插入您指定的文件的副本,就在您放置它的行。这允许您将源代码模块化为多个文件,并将所有这些文件编译在一起。

请参阅:http://msdn.microsoft.com/en-us/library/36k2cdd4(VS.71).aspx

答案 3 :(得分:1)

关于ctags和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

还有一些其他好的问题,你可以在其他问题中找到, 所以我不会更深入地了解这一点。

/约翰

答案 4 :(得分:0)

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

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

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

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