0

我知道您可以通过使用 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"
4

2 回答 2

2

Use

-include a.h -include b.h -include inserted.h

Add header protection to all *.h files (which should be there anyway ... ;-).

于 2013-04-23T14:23:11.480 回答
0

你不能完全按照你的要求去做。没有办法告诉编译器在文件中的随机点插入头文件。但也许你可以得到一些接近的东西。

首先将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 编译

于 2013-04-23T14:40:13.510 回答