如果我有两个头文件
a.h
和b.h
我可以包括";a.h";b.h
并且还包括";b.h";在";a.h"?
你可以,但这不是一个好主意。如果确实必须这样做,可以使用include保护来防止递归(不管怎样,这都是个好主意(。
在a.h
:中
#ifndef A_H
#define A_H
#include "b.h"
#endif
和b.h
#ifndef B_H
#define B_H
#include "a.h"
#endif
不,这行不通。预处理器只是用实际文件替换#include"xyz.h"
,所以这将以无休止的递归结束。