关于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文件的代码

1. #include <stdio.h>
2. #include <stdlib.h>
3. #include "a.h"
4. #include "b.h"
5. 
6. int DataPro(int x);
7. 
8. int main(void)
9. {
10.   int ResGlobalA, ResGlobalB;
11.   ResGlobalA = DataPro(global_a + 5);
12.   ResGlobalB = DataPro(global_b + 10);
13. 
14.   printf("ResGlobalA = %d.\n", ResGlobalA);
15.   printf("ResGlobalB = %d.\n", ResGlobalB);
16. 
17.   system("pause");
18.   return 0;
19. }
20. 
21. int DataPro(int x)
22. {
23.   x++;
24.   return x;
25. }
26.

运行结果如下:

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

目录
相关文章
|
2月前
|
存储 安全 C语言
C语言抽象数据类型栈的定义讲解
C语言抽象数据类型栈的定义讲解
21 0
|
2月前
|
程序员 编译器 C语言
嵌入式 C 语言中的全局变量问题
嵌入式 C 语言中的全局变量问题
18 0
|
2月前
|
算法 编译器 C语言
C语言猜数字小游戏(也包含python实现的用法)
本文基于VS2022、pycharm和前面的知识,写一个凭借分支与循环的小游戏,比如: 写一个猜数字游戏 游戏要求: 电脑自动生成1~100的随机数 玩家猜数字,猜数的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束 在pyhton中生成随机数是比较简单的,可以直接导入random的包,直接生成随机数,导致写猜数字小游戏变成了判读语句和循环语句嵌套就能写出来,所以我不做过多的介绍了,可以直接看后面的代码展示,想了解更多的python可看python的基础知识,这里面有我在学习python的过程中写的笔记
31 0
|
4月前
|
编译器 Shell Linux
C语言的本质(六):链接详解-定义和声明
C语言的本质(六):链接详解-定义和声明
47 0
|
4月前
|
存储 数据可视化 C语言
C 语言数组教程:定义、访问、修改、循环遍历及多维数组解析
数组用于将多个值存储在单个变量中,而不是为每个值声明单独的变量。 要创建数组,请定义数据类型(例如 int)并指定数组名称,后面跟着方括号 []。 要将值插入其中,请使用逗号分隔的列表,并在花括号内使用
465 0
|
5月前
|
编译器 C语言
C语言的转义字符,转义字符的用法
C语言的转义字符,转义字符的用法
C4.
|
2月前
|
存储 程序员 数据处理
C语言怎样定义和引用一维数组
C语言怎样定义和引用一维数组
C4.
16 0
C4.
|
2月前
|
存储 C语言
C语言怎样定义和引用二维数组
C语言怎样定义和引用二维数组
C4.
16 0
|
2月前
|
存储 C语言
C语言栈的表示和实现的定义讲解
C语言栈的表示和实现的定义讲解
21 0
|
2月前
|
编译器 C语言
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)