【问题标题】:C++ header file in Visual StudioVisual Studio 中的 C++ 头文件
【发布时间】:2016-06-15 20:28:42
【问题描述】:

好的。所以我有一个简单的问题。如果我在错误的地方问它,请纠正我。我想问的是,为什么 Visual Studio 会给我这个:

#include "stdafx.h"


int main()
{
    return 0;
}

每次我创建一个新项目? (我知道我可以选择 Empty Project,然后自己添加我的 .cpp 文件,但我只是好奇。上面写着 #include <stdio.h>#include <tchar.h>。那它是干什么用的?你们都在用它还是什么?

还有 P.S - 为什么 main 声明中没有 (int argc, char** argv)? (在我大学的编码课程中,我了解到在 VS 中创建东西时可能会有 _tmain(int argc, _TCHAR* argv)

【问题讨论】:

  • 这是 Visual Studio 的怪事。它支持他们的预编译头文件。 main 的参数是可选的——如果需要,您可以添加它们,或者如果您不使用它们,可以省略它们。 _tmain 作为程序入口点也是微软的怪事,不是标准 C++ 的一部分。
  • 你可以删除stdafx.h,然后你必须禁用预编译头文件-> stackoverflow.com/questions/7261707/…

标签: c++ visual-studio header stdafx.h


【解决方案1】:

预编译头文件是为了加快编译时间,方法是将最常包含的头文件的内容只编译一次,然后重用编译结果。如果需要,您可以更改其名称。

【讨论】:

    【解决方案2】:

    好的。所以我有一个简单的问题。如果我在错误的地方问它,请纠正我。我想问的是,为什么 Visual Studio 会给我这个: ...

    嗯,这在一定程度上取决于您从向导中选择的项目类型。看起来像控制台项目的标准模板

    #include "stdafx.h"
    

    由向导为任何类型的翻译单元添加前缀。支持precompiled header optimizaton mechanism


    为什么主声明中没有(int argc, char** argv)

    因为模板为有效的main() 入口例程定义提供了最小值。

    【讨论】:

      【解决方案3】:

      创建新的 Win32 项目时,Visual Studio 会自动将预编译头文件“stdafx.h”添加到您的项目中,即使您未选中“空项目”复选框也是如此。

      如果您想禁用此功能,请转到您的项目配置属性 -> C/C++ -> Precompiled Headers 并选择“Not Using Precompiled Headers”。

      使用预编译头请参阅:https://stackoverflow.com/a/4726838

      还有 P.S.看->https://stackoverflow.com/a/4207223

      【讨论】:

        猜你喜欢
        • 2011-10-06
        • 1970-01-01
        • 1970-01-01
        • 2010-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多