【发布时间】:2021-08-06 02:14:53
【问题描述】:
如果我有两个头文件
a.h 和 b.h
我可以在 b.h 中包含“a.h”吗
并且还在“a.h”中包含“b.h”?
【问题讨论】:
-
通常最好只在一个方向上有依赖。
-
您可以尝试添加
#pragma once
如果我有两个头文件
a.h 和 b.h
我可以在 b.h 中包含“a.h”吗
并且还在“a.h”中包含“b.h”?
【问题讨论】:
#pragma once
可以,但这不是一个好主意。如果你真的需要,你可以使用包含保护来防止递归(无论如何这都是一个好主意)。
在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" 替换为实际文件,因此这将以无休止的递归结束。
【讨论】: