如何修复“在C99模式外使用的循环初始声明”GCC错误?

时间:2016-10-28 11:00:16

标签: c for-loop gcc

我正在努力解决,但我不知道哪里出错。

int main() {
    for (int i = 0; i < 3; i++) {
        pid_t pid = fork();
  }
    return 0;
}

1 个答案:

答案 0 :(得分:4)

您在i循环中声明了for变量。这在C ++中很常见,但在C99规范中被添加(令人惊讶的是最近)。

i变量的声明移到for循环之外:

int main() {
    int i;
    for (i = 0; i < 3; i++) {
        pid_t pid = fork();
  }
    return 0;
}

或者,您可以告诉GCC以C99模式编译代码:

gcc -std=c99

或者,如果您想保留GCC特定的功能,请使用:

gcc -std=gnu99