STM32学习笔记(三)-----变量和数据

来源:互联网 发布:2016网络十大神曲 编辑:程序博客网 时间:2024/06/11 04:07

1)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
}
但是我们希望在test.c的 changeId(void)函数中使用变量 id,这个时候我们就需要在 test.c
里面去申明变量 id 是外部定义的了,因为如果不申明,变量 id 的作用域是到不了 test.c 文件
中。看下面 test.c 中的代码:
extern u8 id;//申明变量 id 是在外部定义的,申明可以在很多个文件中进行
void test(void){
id=2;
}
在 test.c 中申明变量 id 在外部定义,然后在 test.c 中就可以使用变量 id 了。对于 extern 申明函数在外部定义的应用,

另外关于嵌入式C编程中变量和常量修饰static、const、volatile、extern、struct、enum的介绍
1、最有原则的关键字--static

static主要有两大功能:一是修饰全局变量,作用域为文件中,即从定义之处开始到文件结尾处结束;另一种是局部变量,作用域为函数体内

(1)修饰变量



0 0