C++ 语法错误和缺少类型说明符

标签 c++ visual-c++ compiler-errors compiler-warnings

Visual C++ 2008 给我这个奇怪的错误,所以我去掉了头文件 (util.h) 中所有多余的东西 ), 归结为:

#ifndef UTIL_H
#define UTIL_H

void pause();

#endif

当我尝试编译上面的代码时,我得到了这个:

Compiling...
util.cpp
util.h(4) : error C2144: syntax error : 'void' should be preceded by ';'
util.h(4) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
<snip>

我很困惑。即使我注释掉 ifndef、define 和 endif 预处理器指令,它仍然说同样的话。

最佳答案

经过几个小时的寻找,我终于弄明白了!

错误不在头文件本身。头文件被复制并粘贴到包含它们的源文件中。所以我查看了包含该文件的位置,并在 util.cpp 中看到:

#include "stdafx.h"b
#include "util.h"
<snip>

那个额外的 'b' 导致了错误。 C++ 认为它是一个变量,但没有看到类型说明符,因此它假定 'b' 是一个新的整数。然后它认为我应该在 'void' 之前用 ';' 终止它的声明。整个问题只是一个愚蠢的额外字符,以及一条不是很有帮助的错误消息。

关于C++ 语法错误和缺少类型说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931026/

相关文章:

c++ - bjam,如何找到 boost 构建

c++ - 如何从剪贴板中查找所有文件的名称

visual-c++ - 枚举类的默认值总是0吗?

java - MultipartEntityBuilder.create无法解析为一种类型

c++ - 寻找单图像 HDR 算法

c++ - 无法在 C++ 中创建包含日期和时间的文件名

c++ - 标题困惑。编译器不识别数据类型

c# - Visual Studio 2013 的 XAML 错误

c# - 未知的构建错误

c++ - 什么是 strlen 省略?