我有一个名为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文件?
编译器是否理解这
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)