在单片机编程中经常会用到全局变量,假设要在a.c文件中用到b.c文件定义的变量,我们应该怎样定义、怎样引用才能让程序看起来干净整洁呢?下面简单记录一下

假设现在有3个c文件,a.c、b.c、main.c;2个头文件,a.h,b.h

要在main.c文件中用到a.c和b.c文件中的变量,

(1)可以在a.c文件中【int global_a = 0;】,在a.h中申明【extern int global_a;】;

在b.c文件中【int global_b = 0;】,在b.h中申明【extern int global_b;】

(2)在main.c中包含a.h与b.c头文件,即可在main.c文件中去改变global_a 和global_b变量的值了

下面贴出main.c文件的代码

#include #include #include "a.h"

#include "b.h"

int DataPro(int x);

int main(void)

{

int ResGlobalA, ResGlobalB;

ResGlobalA = DataPro(global_a + 5);

ResGlobalB = DataPro(global_b + 10);

printf("ResGlobalA = %d.\n", ResGlobalA);

printf("ResGlobalB = %d.\n", ResGlobalB);

system("pause");

return 0;

}

int DataPro(int x)

{

x++;

return x;

}

运行结果如下:

相应的代码上传到CSDN,下载地址:https://download.csdn.net/download/weixin_42445727/10797111

关于C语言全局变量的定义和用法,关于C语言全局变量的定义和用法相关推荐

  1. c语言 引用定义变量,如何在c语言中定义及引用全局变量?

    如何在c语言中定义及引用全局变量? 答案:5  信息版本:手机版 解决时间 2019-10-03 10:30 已解决 2019-10-02 15:19 如何在c语言中定义及引用全局变量? 最佳答案 2 ...

  2. c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法

    网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...

  3. r语言的runmed函数_R实战 第五篇:常用函数的用法

    Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数. 一,合并向量 函数appe ...

  4. c语言 #define dpath .exe是什么意思,C语言宏定义#define

    姓名:吕彬 学号:1613014035 [嵌牛导读]#define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎.它可以出现在代码的任何地方,从本行宏定义开始,以后的代 ...

  5. rraylist参数_R语言︱list用法、批量读取、写出数据时的用法

    列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可 以是任意对象,不同元素不必是同一类型.元素本身允许是其它复杂数据类型,比如,列表 的一个元素也允许是列表.例如: > ...

  6. C语言函数(函数嵌套、递归调用)+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+内部函数外部函数

    上一篇文章:编译预处理知识点梳理:宏定义+文件包含+条件编译 C语言函数(函数嵌套.递归调用--+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+ ...

  7. 汇编语言定义变量c,汇编c语言变量

    广告 Apple iPad,AirPods Pro,Bose耳机,机械键盘,健身环等着您 由于c ++支持重载,因此可以使用相同的函数名称但不同的参数类型定义函数. 在编译期间,编译器根据函数的参数类 ...

  8. c语言怎么用枚举类型的字符串,c语言枚举类型的用法

    枚举类型就相当于助记符,帮助程序员记忆的.比如现在要画一张地图,用到红黄蓝绿四种颜色.为了存储方便,我们规定0=红,1=黄,2=蓝,3=绿.但是当编程到某一阶段时,程序员可能忘记了哪个数字具体对应哪种 ...

  9. c语言编程基础------0.2GCC和GNU的关系,以及GCC的用法

    这篇文章主要来自百度百科 gcc(GNU编译器套件) GNU编译器套件(GNU Compiler Collection)包括C.C++.Objective-C.Fortran.Java.Ada和Go语 ...

  10. 单片机c语言using,C语言在8051单片机上的扩展(interrupt、using关键字的用法)

    C语言在8051单片机上的扩展(interrupt.using关键字的用法) 直接访问寄存器和端口 定义 sfr   P0 0x80 sfr    P1 0x81 sfr    ADCON; 0xDE ...

最新文章

  1. Win7双击文件夹总是新窗口打开的解决方法
  2. LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ
  3. Python中深拷贝与浅拷贝的区别?
  4. php5.3连接sqlserver2005
  5. python csv数据处理_Python数据处理(1) —CSV文件数据处理
  6. JavaFX官方教程(十四)之转换,动画和视觉效果教程的源代码
  7. linux apache配置_linux查看nginx、apache、php、php-fpm、mysql及配置项所在目录
  8. phtml php,PHTML Encoder
  9. GNU C的定义长度为0的数组
  10. 我想向你们推荐一门最好的python课程——CS61A学习笔记(一)
  11. c语言二级选择题APP,C语言二级题库
  12. Java项目名前有红色感叹号怎么解决
  13. 测试所用的技术(黑盒、白盒测试等)
  14. MySQL单表数据量大优化方案及注意事项
  15. 优化DNS,加快DNS的解析速度
  16. 是时候卸载这些全身都是广告的浏览器了:360、UC、QQ
  17. 笑对过往、活在当下、期盼未来
  18. 1688API详情接口调用展示
  19. 苹果连不上电脑服务器未响应,苹果电脑服务器未响应怎么办
  20. 全国计算机等级考试四级笔试样卷网络工程师

热门文章

  1. ue编辑器编辑 html文件夹,ue编辑器使用教学,轻松编辑文本和项目
  2. 制作自己的绿色版 FireFox
  3. 开发文档chm文件打不开
  4. python爬虫利用requests和BeautifulSoup爬取美女图片
  5. OCR-CTPN 文字检测
  6. boost::asio 阻塞卡顿问题
  7. asr语音转写_利用Real-time ASR语音转写服务实现直播实时弹幕提升用户体验
  8. android设置adb环境变量,如何配置android的adb环境变量
  9. 【Python成长之路】卡萨帝冰箱能买吗?让数据来说话!
  10. Python包:包的概念、2种建立包方式、包的使用(代码 + 图文)