我知道您可以通过使用 gcc 中的编译器标志将头文件放在文件顶部-include
,但是是否可以在文件的其他头文件声明的末尾包含头文件。例如,我在 C 源文件中有以下声明。
#include "a.h"
#include "b.h"
我愿意,成为
#include "a.h"
#include "b.h"
#include "inserted.h"
而不是
#include "inserted.h"
#include "a.h"
#include "b.h"
我知道您可以通过使用 gcc 中的编译器标志将头文件放在文件顶部-include
,但是是否可以在文件的其他头文件声明的末尾包含头文件。例如,我在 C 源文件中有以下声明。
#include "a.h"
#include "b.h"
我愿意,成为
#include "a.h"
#include "b.h"
#include "inserted.h"
而不是
#include "inserted.h"
#include "a.h"
#include "b.h"
Use
-include a.h -include b.h -include inserted.h
Add header protection to all *.h
files (which should be there anyway ... ;-).
你不能完全按照你的要求去做。没有办法告诉编译器在文件中的随机点插入头文件。但也许你可以得到一些接近的东西。
首先将inserted.h中的所有声明作为一个宏:
#define DECLARE_INSERTED_H \
int gFoo = 0; \
void functionBar(); \
然后在你的c文件中:
#include a.h
#include b.h
#ifndef DECLARE_INSERTED_H
#define DECLARE_INSERTED_H
#endif // !DECLARE_INSERTED_H
DECLARE_INSERTED_H
然后用 -i inserted.h 编译