STM32学习笔记(三)-----变量和数据
2017-01-20 16:44
134 查看
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)修饰变量
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)修饰变量
相关文章推荐
- 在多线程中使用spring的bean
- sql 根据年份、月份查询数据
- WKWebView 白屏问题
- ubuntu及windows下工具
- 普通有序树的遍历
- 实习期间的一点收获
- 股票入门基础知识40:识别并理解价格通道
- Activiti 自由跳转两种实现方式-自我总结
- js动态创建和删除div
- B君的宴请
- jQuery滑动选取数值范围插件
- Java中List集合去除重复数据的方法
- 串口接收数据
- thinkphp session设置
- c语言中const 类型变量地址赋值给指针。
- linux下使用ack进行代码搜索
- MFC程序中创建文件夹(文件路径)
- Android获取屏幕宽高
- 使用MVP+RxAndroid+DroiBaaS打造云后台App—校园日记
- Firebase 远程配置 iOS 教程