未声明的标识符'数字',我该如何解决这个问题?

时间:2015-07-09 15:20:10

标签: c syntax-error pelles-c

我试图显示我在程序中指定的数字,但收到以下错误:

main.c(23):错误#2048:未声明的标识符'编号'。

#include <stdio.h>



int main()

{

 {

int number = 32 ;

}

printf("integer is %d \n", number );

    return 0;
}

我知道对于某些用户来说,解决这个问题的方法必须非常简单,但是我会按照书中的说明进行操作,据我所知,我跟着这封信。

请非常感谢任何帮助。

4 个答案:

答案 0 :(得分:0)

C中的大括号{}用于引入一个块,该块是它自己的作用域,在该块中声明的变量对于该块是本地的,并且嵌套在其中。

当您在自己的块中声明number时,该变量仅在该块中声明,而不是在外部块中声明。因此解决方案非常简单:删除大括号并将变量放在外部块中:

int main()
{
    int number = 32 ;

    printf("integer is %d \n", number );

    return 0;
}

答案 1 :(得分:0)

您的问题是scoping

int main()
{
   {       
      int number = 32 ;     <== Number enters scope here
   }                        <== Number leaves scope here

   printf("integer is %d \n", number );  <== Number is out of scope scope here

   return 0;
}
  

括号内发生什么,保持在括号内。

(weeeell,听起来比#34更好;范围界定的第一条规则是你不要谈论范围界定&#34 ;; - )

答案 2 :(得分:0)

number的声明用大括号括在其自己的块中,因此仅在此块中具有范围,因此尝试在该块之外访问它而产生错误。解决方案是将声明移到该块之外(删除它周围的额外花括号),

答案 3 :(得分:0)

indent您的密码。 您声明并初始化了一个仅存在于内括号中的整数变量。 因此,&#34;数字&#34;在达到printf指令时被销毁并且不存在。

以下代码按预期工作:

int main()
{
   int number = 32 ;
   printf("integer is %d \n", number );
   return 0;
}