多个头文件到一个源文件?

the*_*eva 1 c header-files

我有一个名为source.c的源文件和一个名为source.h的公共头文件.source.c包含s

#include "source.h"
Run Code Online (Sandbox Code Playgroud)

我不希望source.c中的所有函数都是公共的,因此我想要另一个名为priv_source.h的头文件,它引用source.c中的一些私有函数.

编译器是否理解priv_source.h也是source.c的头文件,还是我必须创建另一个名为priv_source.c的c文件?

das*_*ght 7

编译器是否理解这priv_source.h也是一个头文件,source.c或者我是否必须调用另一个c文件priv_source.c

C编译器不进行任何此类连接:所有文件,标头和源都与编译器无关.它所知道的是它需要处理的翻译单元的名称(即.c文件的名称)以及这些翻译单元包含的标题的名称.

将声明拆分为两部分是常见的 - 公共部分和私有部分.但是,在这种情况下,私有标头将包含公共标头,如下所示:

source.h

// Public declarations go here
void public_function1(int, int);
void public_function2(int, double, int);
Run Code Online (Sandbox Code Playgroud)

priv_source.h

#include "source.h"
void private_function1(float);
void private_function2(char*);
Run Code Online (Sandbox Code Playgroud)

由source.c

#include "priv_source.h"
Run Code Online (Sandbox Code Playgroud)