[产品应用] 全局变量和局部变量的知识

[复制链接]
921|4
 楼主| jf101 发表于 2024-9-14 12:00 | 显示全部楼层 |阅读模式
1、什么是全局变量和局部变量?

这个是C语音的基础知识,应该比较好理解,简单的回顾一下。简单来说,全局变量就是在函数外面定义的变量,局部变量就是在函数内部定义的变量,通过static修饰的是静态变量,举个栗子:

  1. int x=10;        // 普通全局变量
  2. static int y=20; // 静态全局变量
  3. void main(void)
  4. {
  5.   int x=20;       //普通局部变量
  6.   static int y=40;//静态局部变量
  7.   printf("%d,%d",x,y);
  8. }

上面主要是语义或者概念上的区别,这4种变量有编程上有什么本质区别,画个表格对比理解一下:

1.png

2、全局变量和局部变量的内存模型

单片机内存包括ROM和RAM 两部分,ROM存储的是单片机程序中的指令和一些不可更改的常量数据,而 RAM存放的是可以被更改的变量数据;

再画个表格理解一下:

2.png

综合上面两个表可以看出,普通全局变量、静态全局变量、静态局部变量都是在RAM的全局数据区,只有普通局部变量在RAM的栈区。

中国龙芯CDX 发表于 2024-9-19 08:06 | 显示全部楼层
ROM存储的是单片机程序中的指令和一些不可更改的常量数据,而 RAM存放的是可以被更改的变量数据
szt1993 发表于 2024-9-23 16:57 | 显示全部楼层
数据存储现在是MCU控制的
小夏天的大西瓜 发表于 2024-9-26 16:54 | 显示全部楼层
单片机内存包括ROM和RAM 两部分,ROM存储的是单片机程序中的指令和一些不可更改的常量数据,而 RAM存放的是可以被更改的变量数据;
AdaMaYun 发表于 2024-10-13 17:55 | 显示全部楼层
单片机内存包括ROM和RAM 两部分,ROM存储的是单片机程序中的指令和一些不可更改的常量数据,而 RAM存放的是可以被更改的变量数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

264

主题

2029

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部