我应该,还是不应该在不同的c文件中包含相同的标题,而这些文件又是主文件中使用的标题?

Gui*_*inn 6 c precompiled-headers

我正在构建一个main.c文件,以利用几个不同的.h文件中的函数.这些.h文件中的一些(或者更确切地说,它们的.c源文件)使用相同的包含(标准但也包括其他一些)

我的问题是:如果我只在main.c中包含所有头文件,或者我应该让每个.h文件单独包含它们而不是将它们包含在我的main.c中(考虑到我只使用来自那些头文件)?

或者我应该两个都做?

我现在怎么做的是:

dist.c:

#include "dist.h"
#include  <stdio.h>
#include  <unistd.h>
#include  "rpiGpio.h"
#include <pthread.h>
#include  <wiringPi.h>
#include  <softPwm.h>
Run Code Online (Sandbox Code Playgroud)

然后换另一个:

cmps.c:

#include "cmps.h"
#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <math.h>
#include "rpiGpio.h"
Run Code Online (Sandbox Code Playgroud)

然后在我的main.c:

#include    <stdio.h>
#include    <stdlib.h>
#include    "dist.h"
#include    "cmps.h"
Run Code Online (Sandbox Code Playgroud)

提前致谢!

mea*_*gar 7

您应该在自己的标头上方包含标准标头,并且应该包含该文件中文件的所有依赖关系.如果更改其中一个文件中的包含,则不应影响任何其他文件.每个文件都应该保留自己的标头依赖项列表.

如果在您的示例中dist.h包含<stdio.h>,则不应该依赖此外部dist.h.如果你改变dist.h它不再依赖<stdio.h>并删除它#include,那么你的程序就会中断.