错误c2065和许多其他错误

时间:2013-09-08 16:10:05

标签: c

我不知道我的代码有什么问题。我正在做一个操作系统时间调度程序,我只是刚开始编写代码,当我尝试它只是检查它的运行是否正确时我得到了一个错误。

这是我的功能:

void npefcfs()
{
    int process;
    int bt[10];
    printf("    How many process do you like to use: ");
    scanf("%d",&process);
    printf("\n  -----------------------------------------");
    printf("\n  Please Enter Burst time: ");

    for (int i = 0; i < process; i++)
    {
        int num = 1;
        printf("\nP%d =",num);
        num = num + 1;
        scanf("%d", &bt[i]);
    }

    for (int k = 0; k < process; k++)
    {
        printf("%d", &bt[k]);
    }
}

我一直有像

这样的错误
error C2065: 'k' : undeclared identifier    
error C2143: syntax error : missing ';' before '{'

我检查了很多次。我想我正确地宣布了K并且不应该错过';'

2 个答案:

答案 0 :(得分:3)

for (int i = 0; i < process; i++)

此语法仅在C99之后有效,但根据您的错误代码,您使用的是Visual Studio,它还不支持C99。

你需要在块的乞讨中以C89样式声明变量i k

void npefcfs()
{    
    int process;
    int i, k;
    //...

后来就像使用它一样:

    for (i = 0; i < process; i++)

答案 1 :(得分:0)

C99功能允许程序员声明一个变量供循环使用:

for (int k = 0; k < process; k++);

变量k无需在此语句之前声明(事实上,如果k的声明已存在,则此语句将创建 new 版本的{ {1}}仅在循环中使用。)
但您无法在C89模式下使用此功能。为此,您必须在开头

中声明变量
k