C - 在变量未编译之前循环

Tra*_*ier 1 c variables loops declaration while-loop

我正在尝试在C中的main方法中创建一个循环,它不是在编译.

这是代码:

    int i = 1;
    while (i < 10) 
    {
        i++;
    }
    int x;
    int a;
    int b;
    int sum;
    sum = a + b;
Run Code Online (Sandbox Code Playgroud)

它没有编译,因为这个错误:

Error   3   error C2143: syntax error : missing ';' before 'type'
Run Code Online (Sandbox Code Playgroud)

循环后声明的所有变量中都会出现此错误.

但是,如果我在这些变量声明之后编写循环,它就可以正常工作.

那么为什么我不能在变量声明之前写一个循环呢?

Jam*_*ook 6

在C89中,所有变量都应该在代码块的顶部声明,即直接在a之后{,它们不必在函数的顶部声明.在C99及以后,它们可以在任何地方声明.如果你的函数中有一段代码需要使用一组变量,那么函数的其余部分就没有了,你可以将这个部分包含在一个块中{....