Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-未编译变量之前的While循环_C_Variables_Loops_While Loop_Declaration - Fatal编程技术网

C-未编译变量之前的While循环

C-未编译变量之前的While循环,c,variables,loops,while-loop,declaration,C,Variables,Loops,While Loop,Declaration,我试图在C中的main方法中创建一个循环,但它没有编译 代码如下: int i = 1; while (i < 10) { i++; } int x; int a; int b; int sum; sum = a + b; 此错误出现在循环后声明的所有变量中 但是,如果我在这些变量声明之后编写循环,它就可以正常工作 那么为什么我不能在变量声明之前写一个循环呢?这是一个过时的Microsoft Vis

我试图在C中的main方法中创建一个循环,但它没有编译

代码如下:

    int i = 1;
    while (i < 10) 
    {
        i++;
    }
    int x;
    int a;
    int b;
    int sum;
    sum = a + b;
此错误出现在循环后声明的所有变量中

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


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

这是一个过时的Microsoft Visual C编译器的典型响应,它不支持最新的C标准。看来他们被时间卡住了


只需在循环之前移动变量,一切都应该正常。

这是过时的Microsoft Visual C编译器的典型响应,它不支持最新的C标准。看来他们被时间卡住了


只需将变量移到循环之前,所有变量都应该是正确的。

在C89中,所有变量都应该在代码块的顶部声明,即直接在
{
,它们不必在函数的顶部声明。在C99及更高版本中,它们可以在任何地方声明。如果函数中有一段代码需要使用一组变量,而函数的其余部分不需要,则可以将该段代码包装在块中
{…
}`在C89中,所有变量都应在代码块顶部声明,即直接在
{
,它们不必在函数的顶部声明。在C99及更高版本中,它们可以在任何地方声明。如果函数中有一段代码需要使用一组变量,而函数的其余部分不需要,则可以将该段代码包装在块中
{…
}`.

这是1999年左右在C中引入的更改之一。您似乎正在使用一个以前定义的以C为目标的实现。哪个编译器?(Visual Studio??)@乌拉夫:如果你问得很好的话,那就没用了…
gcc-std=c89-迂腐的错误…
@Himanshu该代码在pre中无效-C99@Himanshu:联机编译器可能正在使用C99,这是1999年左右C中引入的更改之一。您似乎正在使用一个之前定义的以C为目标的实现。哪个编译器?(Visual Studio??)@乌拉夫:如果你问得很好的话,那就没用了…
gcc-std=c89-迂腐的错误…
@Himanshu该代码在pre中无效-C99@Himanshu:联机编译器可能正在使用C99。非常感谢,它正在工作。非常感谢,它正在工作。
Error   3   error C2143: syntax error : missing ';' before 'type'