gpt4 book ai didi

c++ - 在头文件或源文件中包含 stdafx.h?

转载 作者:IT老高 更新时间:2023-10-28 22:33:47 26 4
gpt4 key购买 nike

我有一个名为 stdafx.h 的头文件,当然这个是预编译的。我已经读过我应该将这些文件包含到我的 .cpp 文件中,但是其中一些语句已经在随附的头文件中需要。

我应该将 stdafx 添加到我的标题中还是添加到我的 cpp 中?我认为将其放入标题中是一种好习惯,但我似乎不得不将其放入标题中。

例子:

stdafx 包含 freeglut。
我的类头文件有一个 GLenum 属性。

我应该将 stdafx 包含在类的 .h 中吗?

最佳答案

stdafx.h should be the first include in EVERY cpp file in your project.


考虑 C++ 不编译头文件,只编译 Cpp 文件

因此,如果 stdafx 是 cpp 文件中的第一个包含,那么编译器将拥有头文件所需的所有内容,当它在 Cpp 文件中遇到头文件时

例如

你有 A.cpp & A.h.
A.h 需要 std:string。

你有 B.cpp & B.h
B.h 需要 A.h,因此 B.h 也需要 std::string。

因为这是一种很好的做法,所以您输入 #include <string>在 stdafx.h 中。

您的构建失败,因为什么都看不到 std::string

现在将 stafx.h 作为第一个包含在 A.cpp 和 B.cpp 中。
当编译器点击 A.cpp 时,它会选择 <string> 的包含。 ,然后拿起 A.h,一切都很开心,因为我们知道 std::string 是什么。

编译器现在点击 B.cpp,它再次首先包含 stdafx,它带来了 <string> ,然后点击 B.h,这带来了 A.h,它再次高兴,因为 std::string 已经被包含。

希望这会有所帮助。

关于c++ - 在头文件或源文件中包含 stdafx.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com