for C in C错误

时间:2012-02-06 13:28:08

标签: c visual-c++

编码IDE:Microsoft Visual C ++ 6.0

以下代码:

#include <stdio.h>
#include <string.h>
int main()
{
    int i;
    for(i=0; i<7; i++)
    {
        int j;
        for(j=0; j<5; j++)
        {
            if(i==0 || i==6)
            {
                // print *****
                if(j<4)
                {
                    printf("*");
                }
                else if(j==4)
                {
                    printf("*\n");
                }
            }
            else
            {
                if(j==0)
                    printf("*");
                else if(j==4)
                {
                    printf("*\n");
                }
            }
        }
    }

    return 0;
}

生成此错误消息:

error C2143: syntax error : missing ';' before 'type'

error C2065: 'i' : undeclared identifier

我只是不知道为什么它给我这种错误信息。它假设是一个简单的循环 - for (int i=0; i<10; i++){}但它只是不起作用并给我这种错误信息。

1 个答案:

答案 0 :(得分:3)

您的编译器可能遵循旧版本的C标准ISO 9899:1990,通常称为“C90”(或有时称为“C89”或“ANSI-C”)。

C90标准不允许for循环内的变量声明。所有变量声明必须在{之后直接在当前语句的顶部完成。

此外,C90标准不允许//注释,这可能是编译器错误的来源。

当前的C标准ISO 9899:2011(“C11”)允许在任何地方进行变量声明,并且还允许//条评论。