资料介绍
通常情况下,都是在C文件中定义全局变量,在头文件中声明,但是,如果我们定义的全局变量需要被很多的C文件使用的话,那么将全局变量定义在头文件里面会方便很多,那到底是如何实现的?
os_var.c文件内容
#define OS_GLOBALS
/*
* os.h中定义很多的全局变量,但是os.h又需要被很多的c文件调用,如果不特殊处理的话,会出现全局变量多次定义的错误,
* 为了实现在os.h中定义全局变量,在os.h的开头加入以下宏定义,且在全局变量前面都加上“OS_EXT”
* #ifdef OS_GLOBALS
* #define OS_EXT
* #else
* #define OS_EXT extern
* #endif
* 然后单独定义一个os_var.c文件,然后包含os.h,且只在这个文件里面定义宏“OS_GLOBALS”,在其他包含os.h的文件中
* 都不定义宏“OS_GLOBALS”,那么在编译的时候,只有os_var.c里面的os.h里面的全局变量前面的OS_EXT才展开为空,其他
* 文件中包含的os.h中的全局变量前面的OS_EXT就展开为extern,即声明,而不是定义,这样就实现了在os.h中定义全局变量。
*/
#include “os.h”
os.h是uC/OS-III的总的头文件,里面定义了很多的全局变量,而且这个头文件会被很多的C文件调用,为了防止重复定义全局变量的问题,故采取了上面的方法,即单独新建一个C文件os_var.c,然后在这个C文件里面定义OS_GLOBALS这个宏,然后再包含os.h这个头文件。那么只有在编译os_var.c的时候,os.h里面的全局变量才是定义,其它c文件里面的os.h的变量都是声明,因为其它C文件我们不会定义OS_GLOBALS这个宏。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- C语言开发单片机为什么大多数都采用全局变量的形式?
- 全局变量被未知原因改变的解决方法
- MCU_头文件编写
- C语言开发单片机为什么大多数都采用全局变量的形式?
- 详解LABVIEW中的局部变量和全局变量 26次下载
- LABVIEW初级教程之局部变量与全局变量的示例程序合集免费下载 34次下载
- LABVIEW初级教程之局部变量与全局变量的详细资料说明 25次下载
- 在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决
- 单片机C语言不完全编程的规范详细说明
- 如何在CAA中定义全局函数 8次下载
- 三种全局变量和全局函数的三种基本方法 3次下载
- 从汇编代码访问C全局变量 0次下载
- 如何在C++代码中使用C头文件 3次下载
- Labview之全局变量 0次下载
- static作用(修饰函数、局部变量、全局变量) 4次下载
- 你是不是也没躲过这个坑?用了太多全局变量...... 562次阅读
- 请问头文件能不能定义变量呢? 1218次阅读
- 嵌入式全局变量的初始化原理详解 1195次阅读
- 西门子博途寻址全局变量 5282次阅读
- 模版定义一定要写在头文件中吗? 1477次阅读
- Python-局部变量与全局变量 920次阅读
- 怎么给全局变量起一个别名 535次阅读
- 用个简单demo实现对全局变量的管理 981次阅读
- C语言里函数的定义、子函数的使用及变量的作用域 6974次阅读
- C51单片机中定义一个全局变量会有怎样的影响 8131次阅读
- STM32单片机设计extern全局变量的定义解析 1.6w次阅读
- 浅谈变量在MCU中存储位置 4183次阅读
- LED显示接口模块程序设计详解 5644次阅读
- 基于static变量来实现一个模块的封装 5578次阅读
- 全局变量和局部变量有什么区别 3.2w次阅读
下载排行
本周
- 1IP6823 支持 qi 认证的无线充电发射控制 SOC
- 1.01 MB | 1次下载 | 免费
- 2IP6824 全集成QI 无线充电发射控制SOC
- 1.22 MB | 1次下载 | 免费
- 3GD32G5x3 FFT模块用户指南
- 920.15KB | 次下载 | 免费
- 4GD32H73x/H75x的器件限制
- 774.05KB | 次下载 | 免费
- 5PDTA115EU配备PNP电阻的晶体管规格书
- 189.74KB | 次下载 | 免费
- 6带注入电流控制的1.8V通用SP8T-Z和2个SP4T-Z模拟开关
- 847.62KB | 次下载 | 免费
- 7PESD18VY1BBIF保护二极管规格书
- 4.56MB | 次下载 | 免费
- 8视频处理器晶振应用方案
- 515.02 KB | 次下载 | 免费
本月
- 1A7159和A7139射频芯片的资料免费下载
- 0.20 MB | 55次下载 | 5 积分
- 2零死角玩转STM32F103—指南者
- 26.78 MB | 41次下载 | 1 积分
- 3PIC12F629/675 数据手册免费下载
- 2.38 MB | 36次下载 | 5 积分
- 4PIC16F716 数据手册免费下载
- 2.35 MB | 18次下载 | 5 积分
- 5dsPIC33EDV64MC205电机控制开发板用户指南
- 5.78MB | 8次下载 | 免费
- 6STC15系列常用寄存器汇总免费下载
- 1.60 MB | 7次下载 | 5 积分
- 7AN-1267: 使用ADSP-CM408F ADC控制器的电机控制反馈采样时序
- 1.41MB | 5次下载 | 免费
- 8LP9962集成 PFC 和 和的 高压半桥驱动的 LLC 谐振
- 3.30 MB | 4次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935124次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420063次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73813次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
评论