我正在尝试阅读其他人的代码,但大多数代码被分解为单独的文件。我还没学会怎么做。你如何将代码分成单独的文件?你如何为函数找到合适的源代码文件?
答案 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()
且不提供其他文件使用的函数的单个源文件不需要头文件。)
使用这些功能的其他文件包括标题。定义函数的文件还包括标头,以确保定义与声明匹配。
通常,源文件首先包含标头是个好主意;这确保了标题可以“独立”使用。也就是说,如果某些其他源文件需要使用标头的服务,它可以包含标头,而不必担心应该首先包含哪些其他标头。