标识符的作用域总结

由大到小分别是:
1、程序级:外部函数和外部变量。
2、文件级:内部函数和外部静态变量,作用域在定义它的文件内。宏定义一般属于文件级。
3、函数级:函数的形参和函数内定义的自动类变量、内部静态变量,作用域在它所定义的函数体内。
4、块级:if语句、switch语句以及循环语句中的自动类变量和内部静态变量。作用域:从定义开始到相应的结束位置。
举例:
实例1:
源代码:
#include <iostream.h>
void main()
{
  int a=5;
  if(a>2)
  {
    int a=1;
    cout<<a<<endl;
    a+=1;
  }
  cout<<a<<endl;
}
输出结果:
1
5
实例2:
源代码:
#include <iostream.h>
void main()
{
  int a=5;
  for(;a>0;a--)
  {
    int a=1;
    cout<<a<<endl;
    a+=1;
  }
  cout<<a<<endl;
}
输出结果:
1
1
1
1
1
0
另外说明:标识符的作用域是一个可见性的问题,有些标识符在程序的某个区域虽然不可见,但是却是存在的,这就是生存期的问题。比如用static关键字声明的变量。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是因为在编译过程中找不到 stdint.h 文件。stdint.h 是 C99 标准中定义的头文件,包含了整型型的定义和相关的宏定义。 解决这个问题的方法是在编译选项中添加 -std=c99 选项,这样编译器就会使用 C99 标准,同时也会加载 stdint.h 头文件。 如果还是无法解决问题,可以检查一下编译器的搜索路径是否正确,或者手动添加 stdint.h 文件路径到编译选项中。 ### 回答2: 未能打开文件:stm32f1xx.h:没有那个文件或目录。 这个错误是由于在编译期间,编译器无法找到stm32f1xx.h这个文件所导致的。stm32f1xx.h文件是STMicroelectronics提供的针对STM32F1系列单片机的头文件,它包含了芯片的寄存器定义、外设的配置和函数接口等。 出现这个错误可能有以下几种情况: 1. 没有将stm32f1xx.h文件放置在正确的路径下,编译器找不到它。解决方法是将stm32f1xx.h文件放置在正确的位置,或者在编译器的头文件搜索路径中添加该文件的所在路径。 2. stm32f1xx.h文件被删除或者移动了位置,导致编译器无法找到它。解决方法是将stm32f1xx.h文件还原到原来的位置,或者修改编译器的配置文件,指定新的文件路径。 3. stm32f1xx.h文件的命名出现错误,导致编译器无法找到它。解决方法是检查文件名的正确性,确保命名正确。 4. 编译器没有正确配置,导致找不到stm32f1xx.h文件。解决方法是检查编译器的配置,确保它能够正确找到stm32f1xx.h文件。 总结起来,解决这个错误的方法是要确保stm32f1xx.h文件被正确放置在编译器能够找到的位置,并且在编译器的配置中正确指定该文件的位置。 ### 回答3: 无法解析的标识符 "NVIC_BASE"。 错误提示中提到的"..\CORE\core_cm3.h(90): error: 无法解析的标识符 "NVIC_BASE"",意思是在文件“core_cm3.h”的第90行出现了一个无法解析的标识符"NVIC_BASE"。这个错误一般可能是由于下列原因引起的: 1. 缺少头文件:在文件中使用了"NVIC_BASE"这个标识符,但是没有包含相关的头文件,导致编译器无法识别和解析这个标识符。解决方法是找到包含"NVIC_BASE"的头文件并包含进来。 2. 未定义标识符:可能是在程序中使用了"NVIC_BASE"这个标识符,但是在该文件中并没有定义或声明它。解决方法是在程序需要使用该标识符的地方,先定义或者声明一下。 3. 标识符作用域问题:可能是在某个作用域中定义了"NVIC_BASE",但在其他作用域中却无法访问到。解决方法是将"NVIC_BASE"的定义放在需要使用它的作用域之内。 综上所述,无法解析的标识符"NVIC_BASE"的错误提示可能是由于缺少头文件、未定义标识符或者作用域问题引起的。根据具体情况,可以采取相应的解决方法来解决这个错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值