我不知道我的代码有什么问题。我正在做一个操作系统时间调度程序,我只是刚开始编写代码,当我尝试它只是检查它的运行是否正确时我得到了一个错误。
这是我的功能:
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并且不应该错过';'
答案 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