c++ - 奇怪的预处理

标签 c++ visual-studio c-preprocessor

奇怪的事情发生了。

我的代码中有一个本地函数

#ifdef abc
.
.
.
#endif

当我写在文件的顶部时

#define abc

它的行为就好像它没有被定义一样。只有当我定义

#define abc

在局部函数本身中,它读取 ifdef 中的代码。

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

最佳答案

可能您在#include "stdafx.h"之前有#define。这被忽略了。

关于c++ - 奇怪的预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002343/

相关文章:

c++ - 压入堆栈的值不是我弹出的C++

javascript - 如何阻止 VS 2013 生成 TypeScript 映射文件

c++ - 如何让编译器根据版本跳过一个函数?

c - 由宏定义的结构体变量大小返回 "this operator is not allowed in a constant expression"

c# - 指向非托管数组的 double*& 的正确 P/Invoke 签名是什么?

c++ - std:::erase 中的 out_of_range 异常

c# - 在 C# 项目中构建 VisualMicro Arduino 项目

c# - 更新/添加表中的行

c - 我应该修改什么以仅预处理整个项目中的所有 C 文件?

C++ (g++) 特殊字符编码 ('\a' 、 '\b' 等)