错误:声明阴影局部变量(mario.c)

时间:2017-06-10 10:47:07

标签: cs50

似乎无法弄清楚我在这里做错了什么。任何建议将不胜感激。代码和错误如下。

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int blocks = 0;
    do 
    {
        printf("%d\n", blocks);
        int blocks = get_int();
    }
    while (blocks < 0 || blocks > 23);
}

mario.c:10:13:错误:声明阴影局部变量[-Werror,-Wshadow]         int blocks = get_int();             ^

mario.c:6:9:注意:之前的声明就在这里     int blocks = 0;         ^

mario.c:10:13:错误:未使用的变量'blocks'[ - 错误,-Wunused-variable]         int blocks = get_int();             ^

生成了2个错误。

make:*** [mario]错误1

2 个答案:

答案 0 :(得分:1)

好像您在声明两次:

int blocks = 0;  //<--- First here
int blocks = get_int();  //<--- Then here

尝试将第二行更改为:

blocks = get_int();

答案 1 :(得分:0)

我想你必须先说int blocks = get_int() 然后转到

do
{
 printf....
}

我的理由是,在您的代码中,您已经为int blocks提供了一个固定的整数,0。

现在我也坚持这个问题