【问题标题】:including header files in one another相互包含头文件
【发布时间】:2021-08-06 02:14:53
【问题描述】:

如果我有两个头文件

a.hb.h

我可以在 b.h 中包含“a.h”吗

并且还在“a.h”中包含“b.h”?

【问题讨论】:

  • 通常最好只在一个方向上有依赖。
  • 您可以尝试添加#pragma once

标签: c header include


【解决方案1】:

可以,但这不是一个好主意。如果你真的需要,你可以使用包含保护来防止递归(无论如何这都是一个好主意)。

a.h:

#ifndef A_H
#define A_H

#include "b.h"

#endif

b.h

#ifndef B_H
#define B_H

#include "a.h"

#endif

【讨论】:

    【解决方案2】:

    不,那是行不通的。预处理器只是将您的#include"xyz.h" 替换为实际文件,因此这将以无休止的递归结束。

    【讨论】:

    • 如果头文件像往常一样受到保护,那么就不会。真正的问题是使 C 编译器看到的依赖关系在任一方向上工作。
    猜你喜欢
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多