如何组织C多文件工程?
How to organize C multi-file project?
我有三个源文件和一个头文件。 main()
在第一个 .c
,主要 (对我来说很难找到单词 "main" 的同义词;d) 在第二个 [=11] 中起作用=], 杂项函数——最后。库包括,定义,函数原型,结构,全局变量都在头文件中。
这是正确的组织吗?
我应该使用哪个参数来命名 clang 的可执行文件? -o
仅适用于单文件项目。
is this the right organization?
不,不是真的。
基本上您希望 1 个源文件对应 1 个头文件(具有 main()
函数的文件除外),因此在您的示例中您将有 "second.h" 和 "last.h".
并且不要忘记 "second.c" 中的 #include "second.h"
让编译器检查所有内容("last.c" 也是如此)。
另外,在需要的地方做 #include
。如果您使用 struct tm
作为参数,例如,在头文件和源文件中使用 #include <time.h>
。保留头文件中不需要的包含。
还记得使用 header guards
正确防止多重包含
#ifndef SECOND_HEADER_INCLUDED
#define SECOND_HEADER_INCLUDED
//avoid #includes
//#defines
//structs
//typedefs, but don't hide *
//avoid globals, use with extern if really needed
//prototypes
#endif
我有三个源文件和一个头文件。 main()
在第一个 .c
,主要 (对我来说很难找到单词 "main" 的同义词;d) 在第二个 [=11] 中起作用=], 杂项函数——最后。库包括,定义,函数原型,结构,全局变量都在头文件中。
这是正确的组织吗?
我应该使用哪个参数来命名 clang 的可执行文件? -o
仅适用于单文件项目。
is this the right organization?
不,不是真的。
基本上您希望 1 个源文件对应 1 个头文件(具有 main()
函数的文件除外),因此在您的示例中您将有 "second.h" 和 "last.h".
并且不要忘记 "second.c" 中的 #include "second.h"
让编译器检查所有内容("last.c" 也是如此)。
另外,在需要的地方做 #include
。如果您使用 struct tm
作为参数,例如,在头文件和源文件中使用 #include <time.h>
。保留头文件中不需要的包含。
还记得使用 header guards
正确防止多重包含#ifndef SECOND_HEADER_INCLUDED
#define SECOND_HEADER_INCLUDED
//avoid #includes
//#defines
//structs
//typedefs, but don't hide *
//avoid globals, use with extern if really needed
//prototypes
#endif