奇怪的预处理

时间:2011-02-15 10:16:34

标签: c++ visual-studio c-preprocessor

发生了一些奇怪的事情。

我的代码中有本地函数

#ifdef abc
.
.
.
#endif

当我写在文件的顶部

#define abc

它就像没有定义一样。只有在我定义

#define abc

在本地函数本身中它读取ifdef中的代码。

这很奇怪,因为我认为编译器只是遍历整个文件而没有更改#preprocessing命令的函数细节。无法理解发生了什么。我正在使用visual-studio 2005。

2 个答案:

答案 0 :(得分:10)

可能你在#include“stdafx.h”之前有#define。这被忽略了。

答案 1 :(得分:0)

我认为您在发布模式下运行示例。因此,某些代码块无法在发布模式下执行。您复制了该行并将其粘贴到某处以使其正常工作。

之前的答案不正确。