使用未声明的标识符 - cs50 问题集

use of undeclared identifier - cs50 problem set

我是一般编程的新手,尤其是 c。 我有点困惑为什么在尝试 运行 以下代码时会出现此错误。应该注意的是,在此之前我有一些代码,但这是给我一些问题的部分。 这部分似乎给我带来了一些问题:

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


    int a;

    do
    {
        int a = get_int("How many cents: ");
    }
    while(a < 0)
    return a;

确切的错误信息是:

Pset1/cash/ $ make cash
cash.c:44:13: error: declaration shadows a local variable [-Werror,-Wshadow]
        int a = get_int("How many cents: ");
            ^
cash.c:40:9: note: previous declaration is here
    int a;
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 errors generated.
make: *** [<builtin>: cash] Error 1

如错误消息所述,您在循环内定义了一个名为 a 的变量,该变量隐藏了更高范围内同名变量的定义。

不要创建新变量。只需分配给您拥有的那个即可。

a = get_int("How many cents: ");