首页 > 解决方案 > 错误:在明显声明的变量上使用未声明的标识符

问题描述

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

int main(void)
{
    long creditcardno;
    do
    {
        creditcardno = get_long("enter");
    }
    while (creditcardno<1000000000000 || 
           creditcardno > 9999999999999999);

}


int i = 0;
long cc = creditcardno;
while (cc>0);
{
    cc = creditcardno/10;
    i++;
}

在上面的 C 程序中,我打算有一个名为 cc 的 long 类型的变量,它将使用用户输入的 creditcardno 的值进行初始化。

收到错误信息:

credit.c:14:11: error: use of undeclared identifier 'creditcardno' 通过“未声明的标识符”,clang 表示您在 credit.c 的第 14 行使用了一个尚未定义的名称 creditcardno。如果您打算使用 creditcardno 作为变量,请确保通过指定其类型来声明它,并检查变量名称是否拼写正确。

据我了解,我已经定义了变量 creditcardno 作为该变量存储用户信用卡的输入值。

标签: ccs50

解决方案


这部分代码是在main(). 这就是它显示错误的原因。

int i = 0;
long cc = creditcardno;
while (cc>0);
{
    cc = creditcardno/10;
    i++;
}

creditcardno是主范围内的变量。这就是为什么它只能从主范围访问。


推荐阅读