热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

ubuntu和stm32下的C程序的内存分配问题

1、内存分配1、全局变量与局部变量全局变量:在所有函数外部定义的变量称为全局变量(GlobalVariable),它的作用域默认是整个程序,也就是所有的源文件。局部变量:定义在函数




1、内存分配

在这里插入图片描述
在这里插入图片描述


1、全局变量与局部变量

全局变量:
在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件。
局部变量:
定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效,再调用就是出错。
区别如下:
在这里插入图片描述
二)堆与栈
堆:
自由申请的空间,按内存地址由低到高方向生长,其大小由系统内存 / 虚拟内存上限决定,速度较慢,但自由性大,可用空间大。
栈:
存放 Automatic Variables ,按内存地址由高到低方向生长,其最大值由编译时确定,速度快,但自由性差,最大空间不大。
二者对比如下图:
在这里插入图片描述


2、Ubuntu 和 STM32 下的输出验证

推荐阅读
author-avatar
最低调的鹌鹑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有