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

时间:2013-07-29 18:01:44

标签: 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,预处理器指令,它仍然说同样的事情。

1 个答案:

答案 0 :(得分:5)

看了几个小时后,我终于明白了!

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

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

额外'b'导致错误。 C ++认为它是一个变量,但没有看到类型说明符,所以它假定'b'是一个新的整数。然后它认为我应该在';'之前用'void'终止其声明。整个问题只是一个愚蠢的额外字符,并且是一个不太有用的错误信息。