嵌入式C语言中各变量存储的位置
2023-08-21 08:41:00 来源:面包芯语
局部变量、局部静态变量、全局变量、全局静态变量区别如下:
【资料图】
局部变量: 栈区;
局部静态变量:静态区;
全局变量: 静态区的常量区;
全局静态变量:静态区。
在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别:
以下是一段实际说明的程序代码:
这是一个前辈写的,非常详细 。
在C语言的程序中,对变量的使用还有以下几点需要注意
1. 体中定义的变量通常是在栈上,不需要在程序中进行管理,由编绎器处理。
2. 用malloc,calloc,realloc等分配内存的函数所分配的内存空间在堆上,程序必须保证在使用free释放,否则会发生内存泄漏。
3. 所有函数体外定义的是全局变量,加了static后的变量不管是在函数内部或外部都放在全局区。
4. 使用const定义的变量将放于程序的只读数据区。
程序中段的使用
下面用一个简单的例子来说明C语言中变量和段的对应关系。C语言程序中的全局区(静态区),实际对应着下述几个段:RO Data; RW Data ; BSS Data.
一般来说,直接定义的全局变量在未初始化数据区,如果该变量有初始化则是在已初始化数据区(RW Data),加上const则将放在只读数据区。
例:const char ro[ ] = {"this is read only data"};//只读数据区
static char rw_1[ ] ={"this is global read write data"}; //已初始化读写数据段
char BSS_1[ 100]; //未初始化数据段
const char *ptrconst ="constant data"; //字符串放在只读取数据段
int main()
{
short b; //在栈上,占用2个字节
char a[100]; //在栈上开辟100个字节,工的值是其首地址
char s[ ]="abcdefg"; //s在栈上,占用4个字节
//“abcdefg”本身放置在只读数据存储区,占8个字节
char *p1; //p1在栈上,占用4个字节
char *p2="123456"; //p2 在栈上,p2指向的内容不能改,
//“123456”在中读数据区
static char rw_2[ ]={"this is local read write data"};//局部已初始化读写数据段
static char BSS_2[100]; //局部未初始化数据段
static int c = 0; //全局(静态)初始化区
p1=(char *)malloc(10 * sizeof(char ) ); //分配内存区域在堆区
strcpy(p1,"xxxx"); //“XXXX”放在只读数据区,占5个字节
free(p1); //使用free释放p1所指向的内存
return 0;
}
定期以通俗易懂的方式分享嵌入式知识,关注公众号,加星标,每天进步一点点。
声明:
本号原创、转载的文章、图片等版权归原作者所有,如有侵权,请联系删除。
关键词:
为你推荐
-
嵌入式C语言中各变量存储的位置
-
大巴车坐哪个位置安全舒服(大巴车坐哪个位置安全舒服)
-
北美激情体育夜:梅西44座桂冠加冕历史第一人!张伟丽UFC碾压创纪录卫冕!
-
踏迹寻音:侨乡故居寄相思的汕头
-
高质量发展看中国 | 全方位推动产业转型升级 杨树浦变身杨“数”浦
-
湖北省潜江市发布暴雨橙色预警
-
暑期游火爆 重庆“单轨穿楼”景点吸引众多游客打卡
-
08月20日猪价:猪价窄幅连跌,上涨受阻,行情拐点何时到来?
-
关于这场比赛恩西索的发挥,我以自媒体的身份再发表...
-
中国工业机器人装机量占全球比重超50%
-
浙江一学校的军训是集体摸鱼 抓到的鱼当天送食堂做晚餐!!
-
事关知名歌手演唱会,15人当场被抓!
-
乌鲁木齐5个重点项目成功签约
-
团建意外险怎么买?多少钱?
-
孔文举年十岁文言文翻译简短 孔文举年十岁翻译
-
威宁公安走进田间地头开展宣传活动
-
重庆比较好的养老院有几家?重庆养老院一览表
-
|曼彻斯特晚报|曼城主教练瓜迪奥拉:“绝对不会批...
-
“享受”还是“难受”?共享按摩椅需要规范发展
-
山西汾酒08月18日被沪股通减持27.91万股
推荐内容
- 嵌入式C语言中各变量存储的位置
- 大巴车坐哪个位置安全舒服(大巴车坐哪个位置安全
- 北美激情体育夜:梅西44座桂冠加冕历史第一人!张
- 踏迹寻音:侨乡故居寄相思的汕头
- 高质量发展看中国 | 全方位推动产业转型升级
- 湖北省潜江市发布暴雨橙色预警
- 暑期游火爆 重庆“单轨穿楼”景点吸引众多游客打卡
- 08月20日猪价:猪价窄幅连跌,上涨受阻,行情拐点
- 关于这场比赛恩西索的发挥,我以自媒体的身份再发
- 中国工业机器人装机量占全球比重超50%
- 浙江一学校的军训是集体摸鱼 抓到的鱼当天送食堂
- 事关知名歌手演唱会,15人当场被抓!
- 乌鲁木齐5个重点项目成功签约
- 团建意外险怎么买?多少钱?
- 孔文举年十岁文言文翻译简短 孔文举年十岁翻译
- 威宁公安走进田间地头开展宣传活动
- 重庆比较好的养老院有几家?重庆养老院一览表
- |曼彻斯特晚报|曼城主教练瓜迪奥拉:“绝对不会批
- “享受”还是“难受”?共享按摩椅需要规范发展
- 山西汾酒08月18日被沪股通减持27.91万股
- 美国银行业存款余额降至17.344万亿美元上周为17.3
- 想看进口图书?南国书香节港澳台馆、国际馆等你来
- 恒指季检结果出炉!珍酒李渡(06979)等11只个股最
- 埃斯顿:公司不单独销售机器人执行器
- 阜阳公布医药领域腐败问题举报途径 提倡实名举报
- 寰蒋鍦ㄦ壙璇轰慨澶峂ojor PowerShell Galler
- 成都市澜悦溪岸人才公寓五批次选房流程
- 看不见的地方下功夫!全新一代星途凌云极致舒适堪
- 新车除异味用什么效果最好的方法(新车如何去除车
- 寻味中国丨这个有着400多年历史的渔村,有点“鲜
- 快手职级体系调整:基层管理干部至少90%来自内部
- 中企在博茨瓦纳举办当地工人技能大赛
- 航天电子08月17日获沪股通增持95.27万股
- 李泽坚上班上班歌歌词(李泽坚上班上班)
- 2023年中国国际服务贸易交易会金融服务专题将于9
- 元素女皇叫什么(lol元素女皇)
- 英菲尼迪QX50搭载全球首款发动机
- 新野城郊乡: 筑牢反邪“安全线” 共创“平安法
- 潞安环能:上半年净利52.96亿元 同比降9.46%
- 贝弗利:哈登的情况现在已经不是钱的问题 我理解
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网通辽10月18日电 (记者 张林虎)18日,记者从内蒙古自治区通辽市奈曼旗公安局获悉,国家一级保护动物--梅花鹿误入当地村民羊群,
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中新网福州10月18日电 (记者 龙敏 王东明)福州市晋安区官方18日晚间通报,18日14时47分,晋安区岳峰镇化工路爱摩轮商业广场项目摩天
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市