函数作用域的学习GPIO_InitStructure

2019-07-20 00:31发布

本帖最后由 亢zhihao 于 2019-7-19 10:07 编辑

      今天再学习蜂鸣器的过程中,遇到了一个问题,在蜂鸣器的这个HARDWARE文件中有两个.c源文件。
分别是led.c和beep.c在这两个源文件的初始化中,都用到了 GPIO_InitTypeDef  GPIO_InitStructure;
有两个相同的GPIO_InitStructure结构体变量。
       然后翻开自己非常厚的C语言书,对变量的作用域又进行了学习。也加深了我对C语言的理解,结合
这个例子,写写我的想法。如有不对的地方,请多多指教。
       这两个变量分别在自己的初始化函数中定义的,所以属于局部变量,作用域为这个函数的{}内,只
能在相应的函数内部使用,也就是说在led.c中初始化函数内部的GPIO_InitStructure变量只能在该源文件
初始化的函数中使用;beep.c中的GPIO_InitStructure同理。
       所以这两个相同名字的变量是不冲突的。
总结:
     在同一个作用域中不能出现两个名字相同的变量,否则会产生命名冲突;
      但是在不同的作用域中,允许出现名字相同的变量,它们的作用范围不同,彼此之间不会产生冲突。



0条回答

一周热门 更多>