iostream被忽略,即使stafx.h仍然存在?
- 论坛
- iostream被忽略,即使stafx.h仍然存在?
22 浏览
匿名的
0 Comments
当使用Microsoft Visual Studio IDE进行编程时,会生成一个名为stdafx.h的文件。这个文件描述了标准系统和项目特定的include文件,这些文件经常使用但很少更改。兼容的编译器(例如Visual C++ 6.0及更高版本)会预编译这个文件,以减少整体编译时间。
在源文件中,除非取消选择编译选项“/Yu'stdafx.h'”(默认情况下),否则Visual C++编译器将不会编译#include "stdafx.h"之前的任何代码。它假设在该行之前的源代码已经编译完成。
这里强调了编译器忽略stdafx.h之前的所有include文件的重要性。之前我就曾因此而遇到问题。
是的,非常重要的一点是编译器会忽略stdafx.h之前的include文件。我花了半天时间去想到底发生了什么,因为我在代码中做了一些小修改,之前的代码却无法正常工作。
简而言之,问题的原因是编译器在编译源文件时会忽略stdafx.h之前的所有include文件。解决方法是确保在源文件中的第一行将#include "stdafx.h"放在所有其他include文件的前面。这样,编译器将正确地编译所有的include文件,并正确处理代码。