首页 > 如果我有一个file1.h和file1.c,那么包含的头文件应该怎么安排?

如果我有一个file1.h和file1.c,那么包含的头文件应该怎么安排?

假设file1.h里面有一些file.c需要使用的头文件以及:
//file1.h 提供了file1.c的函数和struct定义以及常量等接口,供外部文件调用

#ifndef __FILE1_H_
#define __FILE1_H_

#inlucde <stdio.h>

#include "file2.h"
#include "file3.h"

#endif

file1.c里面也包含了一些头文件:

#include "file1.h" //自包含
#include "file4.h"

那么问题来了:哪些头文件该包含在file1.h中,哪些头文件该包含在file1.c中?

大家有什么头文件包含的规范或者经验吗?谢谢啦!


如果你发现include了file1.h后,file2.h是必须include的(否则compile error),那#include "file2.h"写在file1.h里。如果file2.h是可选的,就写在要用的c/cpp文件里。


原则是尽可能把include写在源文件里,因为file1.h除了被file1.c include之外,还可能会被其他文件include,这样file1.h所include的头文件也会在include file1.h的其他文件中被include,所以如果把不必要的include塞进file1.h中,可能造成其他文件include的冗余

【热门文章】
【热门文章】