打印
[产品应用]

全局变量和局部变量的知识

[复制链接]
378|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jf101|  楼主 | 2024-9-14 12:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1、什么是全局变量和局部变量?

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

int x=10;        // 普通全局变量
static int y=20; // 静态全局变量
void main(void)
{
  int x=20;       //普通局部变量
  static int y=40;//静态局部变量
  printf("%d,%d",x,y);
}

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



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

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

再画个表格理解一下:



综合上面两个表可以看出,普通全局变量、静态全局变量、静态局部变量都是在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存放的是可以被更改的变量数据;

使用特权

评论回复
5
AdaMaYun| | 2024-10-13 17:55 | 只看该作者
单片机内存包括ROM和RAM 两部分,ROM存储的是单片机程序中的指令和一些不可更改的常量数据,而 RAM存放的是可以被更改的变量数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

235

主题

1542

帖子

2

粉丝