我是新编译的多个文件,我发现它很难掌握。
好的,假设我有一个party.c,我想从两个程序继承函数:decorations.c,food.c。
我了解到将#c文件包含在#include语句中是不好的做法,所以我创建了头文件并将它们添加到party.c:
#include "decorations.h"
#include "food.h"
现在,decorations.c包含以下内容:
#include "decoration.h"
#include "food.h"
而food.c有以下内容:
#include "food.h"
还有一件事。假设我有lights.c,其中包括:
#include "decorations.h"
我还需要在party.c中为party.c提供一个函数。我是否还要为lights.c创建头文件?我该如何编译?我怎么写我的makefile?或者在没有makefile的情况下编译它?
对不起,如果这真的很基本......
答案 0 :(得分:2)
通常,您可以为可能相关的实现创建相关功能的头文件。
虽然每个头文件肯定有一个实现文件,但将头文件中声明的接口实现拆分为多个实现文件并不常见。
此外,除了公共头文件之外,对一组实现单元(或整个库)使用私有头是常见的,以改善封装。
接下来,主实现文件通常不提供(公共或私有)接口,因此没有标题,但只使用其他标题。
最后,您有责任并决定以任何有意义的方式对项目进行分区,这可能意味着根本没有多个文件。
正确分区/封装的优点是增加了可重用性,减少了耦合,加快了编译速度,使人们更容易理解。
答案 1 :(得分:0)
好的,假设我有一个party.c,我想从两个程序继承函数:decorations.c,food.c
基本上,你想在文件“party.c”中使用“decorations.c”和“food.c”中的函数吗?
我认为你应该将所有这些编译在一起。像这样:
gcc -ansi -Wall -pedantic party.c decorations.c food.c -o program
我假设您在头文件“decorations.h”,“food.h”中拥有所需的所有功能。如果没有,请创建具有缺少功能的另一个头文件。 我总觉得在.c文件中包含多个头文件是个坏主意。
希望这有帮助!