打印
[STM32]

立创商城STM32F系列MDK下C语言基础复习——extern变量申明

[复制链接]
648|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小乐Tzz|  楼主 | 2018-8-21 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MDK下 C语言基础复习————extern变量申明
/*********************************************************/
C语言中 extern 可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。这里面要注意,对于extern申明变量可以多次,但定义只有一次。在我们的代码中你会看到看到这样的语句:
        extern u16 USART_RX_STA;
这个语句是申明USART_RX_STA变量在其他文件中已经定义了,在这里要使用到。所以,你肯定可以找到在某个地方有变量定义的语句:
        u16 USART_RX_STA;
的出现。下面通过一个例子说明一下使用方法。
在Main.c定义的全局变量id,id的初始化都是在Main.c里面进行的。
Main.c 文件
u8 id;//定义只允许一次
main()
{
id=1;
printf("d%",id);//id=1
test();
printf("d%",id);//id=2
}
但是我们希望在main.c的  changeId(void)函数中使用变量id,这个时候我们就需要在main.c里面去申明变量id是外部定义的了,因为如果不申明,变量id的作用域是到不了 main.c文件中。看下面main.c中的代码:
extern u8 id;//申明变量 id是在外部定义的,申明可以在很多个文件中进行
void test(void){
id=2;
}
在main.c中申明变量id在外部定义,然后在main.c中就可以使用变量id了。
对于 extern申明函数在外部定义的应用,这里我们就不多讲解了。
/*********************************************************/


【立创商城】STM32F103CBT6 托盘  https://item.szlcsc.com/8796.html

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

70

帖子

0

粉丝