繁体   English   中英

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

[英]error C2143: syntax error : missing ';' before 'type'

我是编程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();
}

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

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

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

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

这个:

int i=1;
for(;i<=5; i++) {

应该用惯用语写成:

for(int i=1; i<=5; i++) {

因为没有必要在函数范围内声明for循环变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM