Visual Studio中的Hello World C ++应用程序-有关预编译标头的问题

时间:2019-07-19 19:58:40

标签: c++ visual-studio

为了在虚幻引擎中创建游戏,我刚刚开始学习c ++。

我有一些很棒的教程视频,我希望能跟随整个系列学习,但是我已经被困在第一个视频中了:[

我确实对C#和Java有很多了解。

基本上,在本教程中,他们制作了一个HelloWorld! Visual Studio 2017中的Windows控制台应用程序。他们代码的第一行是'#include“ stdafx.h”',在我的代码中是'#include“ pch.h”'

我知道这些预编译的头使我可以访问名称空间中的特定代码/功能,但是此代码存储在哪里?为什么在我的标头中添加include stdafx.h时会出现错误,提示无法打开源代码?

1 个答案:

答案 0 :(得分:1)

当您要为多个.cpp(翻译单元文件)编译相同的标头时,预编译标头只是缓存编译的一种方法。

如果有

a.cpp
b.cpp

其中包括,例如

<windows.h>
<iostream>

然后,将仅完成这些包含标头的一个编译(对于第一个翻译单元),其他翻译单元将重复使用该编译,只要它们包含的内容完全相同-这就是为什么它们会停止到特定文件名称。按照惯例,该文件名为stdafx.h

所以通常我有一个stdafx.cpp,其中我指定“创建PCH”,其他人使用它。