error: declaration shadows a variable in the global scope
error: declaration shadows a variable in the global scope
我一直在尝试为 CS50 ps3 编写 tideman.c。我是 运行 合并排序,有一个结构数组,其中每个元素由两个整数组成。我试图将该数组传递给一个函数,但我不断收到错误消息:错误:声明在全局范围内隐藏了一个变量。
这是我的函数声明:
void Merge_Sort(pair pairs[], int l, int r)
这是我的电话:
int r = pair_count - 1;
int l = 0;
Merge_Sort(pairs, l, r);
return;
pair_count是一个int,pairs就是前面提到的pair类型的数组(两个int)。任何帮助将非常感激!编译器指出声明本身存在错误。它说数组对已经在全局范围内声明过,这在它被初始化的范围内是正确的,但我不知道如何在不发生这种情况的情况下将它传递给函数。这是原始数组的声明:
pair pairs[MAX * (MAX - 1) / 2];
谢谢!
只需尝试更改作为参数发送的这些变量的名称。我认为它会起作用。请将对的名称更改为 pairs_g。
对于许多编译器来说这应该不是问题,但可能是您的编译器不允许阴影变量。
int r_g = pair_count - 1;
int l_g = 0;
Merge_Sort(pairs_g, l_g, r_g);
return;
我一直在尝试为 CS50 ps3 编写 tideman.c。我是 运行 合并排序,有一个结构数组,其中每个元素由两个整数组成。我试图将该数组传递给一个函数,但我不断收到错误消息:错误:声明在全局范围内隐藏了一个变量。 这是我的函数声明:
void Merge_Sort(pair pairs[], int l, int r)
这是我的电话:
int r = pair_count - 1;
int l = 0;
Merge_Sort(pairs, l, r);
return;
pair_count是一个int,pairs就是前面提到的pair类型的数组(两个int)。任何帮助将非常感激!编译器指出声明本身存在错误。它说数组对已经在全局范围内声明过,这在它被初始化的范围内是正确的,但我不知道如何在不发生这种情况的情况下将它传递给函数。这是原始数组的声明:
pair pairs[MAX * (MAX - 1) / 2];
谢谢!
只需尝试更改作为参数发送的这些变量的名称。我认为它会起作用。请将对的名称更改为 pairs_g。 对于许多编译器来说这应该不是问题,但可能是您的编译器不允许阴影变量。
int r_g = pair_count - 1;
int l_g = 0;
Merge_Sort(pairs_g, l_g, r_g);
return;