首页 文章

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

提问于
浏览
1

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 回答

  • 5

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

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

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

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

相关问题