【发布时间】:2015-12-21 01:51:54
【问题描述】:
假设我有以下内容:
Main.cpp
#include <Windows.h>
#include "B.h"
...
-
B.h
...
SomePrototypeFunctionNeedingWindowsH();
-
在 B.h 中,我不需要再次包含 Windows.h,因为它已经预先包含在内。为清楚起见,我希望需要为每个需要它的新文件包含 Windows.h。我正在使用 VS2015。
这个可以吗?
这可以在不影响编译时间的情况下完成吗?
这会被认为是一种可接受的做法吗?
如果这样做,我会遇到任何问题吗?
【问题讨论】:
-
你为什么要这样做?
-
这就是包含守卫的用途。而且大多数编译器“理解”包含守卫,如果之前包含过,甚至不会打开文件。
-
(我个人也会在 B.h 中包含 Windows.h,因此您不必总是知道要使用 B.h,我需要包含 Windows.h)
-
在 b.h 中包含 windows.h 是正常的方法。为什么在需要 b 的任何地方都包含 windows 和 b 是件好事?
-
我想在 B.h 中包含
纯粹是出于语义/可读性的原因,而不是出于编译目的。进一步思考,如果存在长链头依赖关系,这可能会产生很大的问题。
标签: c++ include visual-studio-2015