错误消息C中的变量声明

时间:2017-01-14 22:18:31

标签: c

我是c的新手,我很难理解为什么在尝试编译c中的以下代码时出现错误我相信我尝试了Java并且它完美地编译而没有错误

void f(void) {
  int i;
  i = 6;
  int j;
  j = 20;
}

3 个答案:

答案 0 :(得分:4)

在“旧”C中,所有声明必须位于函数的顶部。在像C99这样的后续版本中,C声明可以在代码中的任何位置。我想你有一个旧的编译器。

答案 1 :(得分:0)

将您的代码更改为

void f(void) {
  int i;
  int j;
  i = 6;
  j = 20;
}

问题是对于一些旧的编译器,你需要在任何可执行语句之前声明变量。如果您不想遇到此问题,请切换到较新的编译器。

答案 2 :(得分:0)

如果您的编译器配置为在c98之后编译c代码,那么您将得到此错误,因为遵循c98标准必须首先完成变量的声明,然后我们可以进行赋值,因此我们不能在中间进行变量声明代码。

但是,您可以选择按照标准c99编译代码的选项,在这种情况下,您可以在代码中间对变量进行声明。