错误C2143:语法错误:缺少';' 在'类型'之前

eLg*_*eLg 23 c visual-studio-2010

我是编程C的新手..请告诉我这个程序有什么问题,以及为什么我收到此错误:错误C2143:语法错误:缺少';' 在'类型'之前 ....

extern void func();

int main(int argc, char ** argv){
    func();
    int i=1;
    for(;i<=5; i++) {
        register int number = 7;
        printf("number is %d\n", number++);
    }
    getch();
}
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 30

Visual Studio仅支持C89.这意味着所有变量必须在函数顶部的任何其他变量之前声明.

编辑:@KeithThompson敦促我添加一个技术上更准确的描述(并且真正正确地指出我的方法并非如此).所有声明(变量或其他任何声明)必须位于块中的所有语句之前.

  • 实际上,这意味着所有声明(变量或其他任何声明)必须在块*内的所有声明*之前. (2认同)

Ran*_*ard 29

我至少8年没有使用visual,但似乎Visual的有限C编译器支持不允许混合代码和变量.声明中的错误行是什么int i=1;?尝试将其移到呼叫之上func();

另外,我会用 extern void func(void);