c - 错误:在明显声明的变量上使用未声明的标识符
问题描述
#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 作为该变量存储用户信用卡的输入值。
解决方案
这部分代码是在main()
. 这就是它显示错误的原因。
int i = 0;
long cc = creditcardno;
while (cc>0);
{
cc = creditcardno/10;
i++;
}
creditcardno
是主范围内的变量。这就是为什么它只能从主范围访问。