两个头文件是相互调用的,此时应怎么办?

来源:百度知道 编辑:UC知道 时间:2024/06/29 19:53:34
在C/C++中,要包含两个头文件,而这两个头文件又是相互调用的,此时应怎么办?
这是今天参加笔试的一道题,我记得好像是宏里面的知识,但查了一下书之后,还是不知该怎么解决?请高手帮忙,解释的详细些?

将调用部分,写成第三个文件。让那两个文件调用。
或者直接写成子函数。

两个头文件是不可以相互调用的。
举个例子,我有4个文件,a.h,a.cpp,b.h,b.cpp
你如果在a.h里面include"b.h",那么在b.h里面就不能include"a.h",会出错.不过你可以在b.cpp里面"a.h",
反过来也是一样的
关键是你说的互相调用这个词。
我们的理解是:
你在a.h里面写:
include "b.h"
然后又在b.h里面写:
include "a.h"
这种写法是错误的!
如果只是为了保证头文件只可能被include一次的话,你要这样:
#ifndef A_H
#define A_H
...//头文件内容
#endif
或者如果是在vs里面的话就直接在开头写:
#pragma once就可以了