关于C语言全局变量的定义和用法,关于C语言全局变量的定义和用法
在单片机编程中经常会用到全局变量,假设要在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语言全局变量的定义和用法相关推荐
- c语言 引用定义变量,如何在c语言中定义及引用全局变量?
如何在c语言中定义及引用全局变量? 答案:5 信息版本:手机版 解决时间 2019-10-03 10:30 已解决 2019-10-02 15:19 如何在c语言中定义及引用全局变量? 最佳答案 2 ...
- c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法
网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...
- r语言的runmed函数_R实战 第五篇:常用函数的用法
Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数. 一,合并向量 函数appe ...
- c语言 #define dpath .exe是什么意思,C语言宏定义#define
姓名:吕彬 学号:1613014035 [嵌牛导读]#define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎.它可以出现在代码的任何地方,从本行宏定义开始,以后的代 ...
- rraylist参数_R语言︱list用法、批量读取、写出数据时的用法
列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可 以是任意对象,不同元素不必是同一类型.元素本身允许是其它复杂数据类型,比如,列表 的一个元素也允许是列表.例如: > ...
- C语言函数(函数嵌套、递归调用)+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+内部函数外部函数
上一篇文章:编译预处理知识点梳理:宏定义+文件包含+条件编译 C语言函数(函数嵌套.递归调用--+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+ ...
- 汇编语言定义变量c,汇编c语言变量
广告 Apple iPad,AirPods Pro,Bose耳机,机械键盘,健身环等着您 由于c ++支持重载,因此可以使用相同的函数名称但不同的参数类型定义函数. 在编译期间,编译器根据函数的参数类 ...
- c语言怎么用枚举类型的字符串,c语言枚举类型的用法
枚举类型就相当于助记符,帮助程序员记忆的.比如现在要画一张地图,用到红黄蓝绿四种颜色.为了存储方便,我们规定0=红,1=黄,2=蓝,3=绿.但是当编程到某一阶段时,程序员可能忘记了哪个数字具体对应哪种 ...
- c语言编程基础------0.2GCC和GNU的关系,以及GCC的用法
这篇文章主要来自百度百科 gcc(GNU编译器套件) GNU编译器套件(GNU Compiler Collection)包括C.C++.Objective-C.Fortran.Java.Ada和Go语 ...
- 单片机c语言using,C语言在8051单片机上的扩展(interrupt、using关键字的用法)
C语言在8051单片机上的扩展(interrupt.using关键字的用法) 直接访问寄存器和端口 定义 sfr P0 0x80 sfr P1 0x81 sfr ADCON; 0xDE ...
最新文章
- Win7双击文件夹总是新窗口打开的解决方法
- LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ
- Python中深拷贝与浅拷贝的区别?
- php5.3连接sqlserver2005
- python csv数据处理_Python数据处理(1) —CSV文件数据处理
- JavaFX官方教程(十四)之转换,动画和视觉效果教程的源代码
- linux apache配置_linux查看nginx、apache、php、php-fpm、mysql及配置项所在目录
- phtml php,PHTML Encoder
- GNU C的定义长度为0的数组
- 我想向你们推荐一门最好的python课程——CS61A学习笔记(一)
- c语言二级选择题APP,C语言二级题库
- Java项目名前有红色感叹号怎么解决
- 测试所用的技术(黑盒、白盒测试等)
- MySQL单表数据量大优化方案及注意事项
- 优化DNS,加快DNS的解析速度
- 是时候卸载这些全身都是广告的浏览器了:360、UC、QQ
- 笑对过往、活在当下、期盼未来
- 1688API详情接口调用展示
- 苹果连不上电脑服务器未响应,苹果电脑服务器未响应怎么办
- 全国计算机等级考试四级笔试样卷网络工程师
热门文章
- ue编辑器编辑 html文件夹,ue编辑器使用教学,轻松编辑文本和项目
- 制作自己的绿色版 FireFox
- 开发文档chm文件打不开
- python爬虫利用requests和BeautifulSoup爬取美女图片
- OCR-CTPN 文字检测
- boost::asio 阻塞卡顿问题
- asr语音转写_利用Real-time ASR语音转写服务实现直播实时弹幕提升用户体验
- android设置adb环境变量,如何配置android的adb环境变量
- 【Python成长之路】卡萨帝冰箱能买吗?让数据来说话!
- Python包:包的概念、2种建立包方式、包的使用(代码 + 图文)