Unexpected #else
Unexpected #else
本文关键字:#else Unexpected 更新时间:2023-10-16
由于我无法解释的原因,编译器输出了一个错误,说它发现了一个意外的#else令牌。
这发生在文件的开头:
#if defined( _USING_MFC )
#include "stdafx.h"
#else
#include <windows.h>
#endif
在此之前,除了几条(单行)注释之外,没有其他代码。
此错误发生在.cpp文件中。您在上面看到的是文件的开头。在此之前什么都没有。
我尝试在上面定义的代码之前添加以下代码,现在错误是意外的#endif
#if 1
#include "stdafx.h"
#endif
因此,我怀疑包含以下代码的stdafx.h文件存在问题:
#ifndef STDAFX_H_INCLUDED
#define STDAFX_H_INCLUDED
#include <Afx.h>
#include <Windows.h>
using namespace ATL;
#endif // STDAFX_H_INCLUDED
它真的没有什么特别之处。我还从一个只包含#include语句的stdafx.cpp文件中包含了这个stdafx.h文件,并且它编译正确。
以下是项目预处理器的定义:
_DEBUG
_WIN32_WCE=$(CEVER)
UNDER_CE
WINCE
DEBUG
_WINDOWS
$(ARCHFAM)
$(_ARCHFAM_)
_UNICODE
UNICODE
_TERMINAL_FALCONX3_CE6
_NO_CPP_EXCEPTIONS
_DONT_INCLUDE_WS_HEADERS
_USING_MFC
以及一些额外信息:使用Visual Studio 2008为Windows CE 6编译。
是什么原因造成的?非常感谢。
基于名称stdafx
,我假设它是一个预编译的头。
预编译器头必须是文件中的第一个include(预处理器)指令,在它之前不能放任何东西(甚至不能放ifdef)。唯一的例外是一些注释行,因为这些注释行无论如何都会被忽略。
根据您的示例,您应该将#ifdef _USING_MFC
放入stdafx.h
中,并在其中包含Afx.h
。
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 如何删除peer if else分支中的冗长句子
- 我似乎对if/else的基本语句有问题:/
- 使用if-else将数字转换为单词
- c++ std::enable_if .... else?
- 如果 else 语句不断循环
- 为什么这个案例陈述需要一个"if else"而不仅仅是一个"if"?
- C++ If/Else 语句被跳过
- 为什么我的最后一个 ELSE 条件无法正确执行
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 如何将 if else 语句重写为 switch 语句
- 在 C++ 中的 if-else if- else 语句期间更改变量
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 具有嵌套 if-else 的循环的时间复杂度
- 如果 else 语句使用大写和小写字母
- 野牛/yacc 解析器在不被空格分隔时跳过 grammer - "unexpected $end"
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- Unexpected #else