This question already has answers here:
Header file included only once in entire program?

(4 个回答)


3年前关闭。




file1.c 首次包含 inc.h (包含包含保护 #ifndef INC_H )时,会执行 #define INC_H。但是现在,当另一个 file2.c 包含相同的 inc.h 时,宏 INC_H 是否已经定义,所有这些都是相同的故事并且以前的定义不会在这里传播?

最佳答案



是和否。这取决于。

  • 如果 file2.c 包含一些包含 inc.h 的 header ,那么 INC_H 已经为 file2.c 定义。对于任何级别的包容都是如此。
  • 否则, 没有 它尚未定义。

  • Guards 防止头文件被间接或直接地多次包含在文件中!

    关于c++ - C 包括守卫,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8268687/

    10-12 03:01