我刚刚遇到一个Visual C++选项,它允许你强制包含文件 - 这是在我查看#include "StdAfx.h"
每个.cpp文件中缺少一些代码的时候出现的,但实际上是通过这个选项实现的.
该选项可在Advanced C/C++ Configuration Properties页面上找到,并等同于/ FI编译器选项.
这个选项可能证明非常有用,但在我匆忙开始使用它之前,我想我会问是否有任何问题?
如果您使用的是预编译头文件,我会说与上面的litb相反.如果您使用"stdafx.h"作为预编译头,并具有如下代码:
#include "afile.h" #include "stdafx.h"
那么你将花费一个年龄试图弄清楚为什么"afile.h"没有被包括在内.使用预编译头时,所有包含和#defines都会被忽略,直到"stdafx.h".因此,如果您强制包含"stdafx.h",那么上述内容将永远不会发生,您将获得一个有效使用预编译选项的项目.
至于litb关于查找宏的评论,好的IDE通常可以选择跳转到符号的定义,无论是#define,函数,类等.
我会劝阻/ FI(MSDN说它叫做/ FI.不知道我是否看过正确的页面),只是因为人们或你自己阅读文件并没有注意到标题是神奇地包括在内.
你可以肯定这会给想要找出特定宏来自哪里的人带来很多调试时间,即使#include
文件顶部没有行.