【问题标题】:Error: use of undeclared identifier on an apparently declared variable [duplicate]错误:在明显声明的变量上使用未声明的标识符[重复]
【发布时间】:2021-09-21 04:27:34
【问题描述】:
#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:错误:使用未声明的标识符“creditcardno” 通过“未声明的标识符”,clang 表示您使用了 在 credit.c 的第 14 行命名 creditcardno 尚未定义。如果您打算使用 creditcardno 作为 变量,确保通过指定其类型来声明它,并且 检查变量名是否拼写正确。

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

【问题讨论】:

  • creditcardnomain 的本地。你为什么要在main之外写代码?
  • 请注意,while (...); 后面的分号通常是错误的;它使循环体为空,因此根据测试最初是真还是假,循环要么什么都不做,要么无限循环。

标签: c cs50


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多