c语言中的各种变量是如何存储的(-)
众所周知,c语言中有全局变量,局部变量,常量数据。。。
其中,全局变量又有初始化和不初始化。
int array[1024];
int main()
{
return 0;
}
lyh@debian:~/test$ gcc -g bss.c -o bss
lyh@debian:~/test$ objdump -h bss | grep bss
bss:
file format elf32-i386
24 .bss 00001020 08049580 08049580 00000568 2**5
lyh@debian:~/test$ ls -l
bss
-rwxr-xr-x 1 lyh lyh 5395 4月 26 18:29 bss
(bss段用来存放未初始化的全局变量)
上面代码中全局变量未初始化,全局变量array 4k的数据存放在bss中。
int array[1024] = {1};
int main()
{
return 0;
}
lyh@debian:~/test$ gcc -g data.c -o data
lyh@debian:~/test$ objdump -h data | grep\\.data
23 .data 00001020 08049560 08049560 00000560 2**5
lyh@debian:~/test$ ls -l data
-rwxr-xr-x 1 lyh lyh 9520 4月 26 18:35 data
(.data段用来存放初始化了的全局变量)
上面代码中全局变量初始化了,全局变量array 4k的数据存放在.data中。发现data文件的大小为9520,也就是说初始化了的全局变量的大小会加入到文件大小中,同时又会占内存。
所以我们在定义全局变量的时候,要考虑要不要初始化,能不初始化就不初始化,毕竟会增大文件的大小。
如果我们把全局变量初始化为0时,会发生什么呢?
int array[1024] = {0};
int main()
{
return 0;
}
lyh@debian:~/test$ objdump -h data | grep\\.data
23 .data 00000008 08049560 08049560 00000560 2**2
当我们查看.data时发现初始化为0的全局变量array竟然不是存储在.data段中。
lyh@debian:~/test$ objdump -h data | grep bss
24 .bss 00001020 08049580 08049580 00000568 2**5
查看bss段,发现array存放在该段里
编译器会把该全局变量当作没初始化处理,即把全局变量存到bss段中。所以可以得出bss段是用来存放未初始化或者初始化为0的全局变量。
-------本人菜鸟一只,如有错误,大牛们指出^_^
c语言中的各种变量是如何存储的(-)相关推荐
- python中可以使用变量来引用函数吗_如何在python语言中使用函数变量并调用函数...
在python语言中,除了常规变量之外,还有函数变量.把函数本身赋值给变量,这个变量为函数变量. 工具/原料 python pycharm 截图工具 WPS 方法/步骤 1 在已新建的python文件 ...
- python以下是变量合法命名的是_Python语言中以下哪个变量的命名是错误的
[单选题]雨篷.阳台计量不正确的是( ) . [单选题]关于补体活化的MBL途径,哪项是错误的? [单选题]关于楼地面垫层的计量规则,描述错误的是( ). [单选题]根据<建设工程工程畺清单计价 ...
- c语言结构体成员变量私有化,C语言中结构体变量私有化详解
C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...
- C语言中的 static变量(全局和局部)、static函数总结
简介: C语言中的 static变量(全局和局部).static函数总结 文章目录 本博文的简述or解决问题? 同步博文: static 变量: 静态局部变量: 静态全局变量: static 函数-. ...
- java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...
Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou 更多相关问题 [单选题]下列因素中不是经济中内在稳定器的是 [单选题]外在时滞是以下哪两 ...
- A13在c语言中是合法变量吗,C语言中局部变量和全局变量等在内存中的存放位置.doc-资源下载在线文库www.lddoc.cn...
C语言中局部变量和全局变量_等在内存中的存放位置.doc C 语言中局部变量和全局变量 变量的存储类别static,extern,auto,register 8.8 局部变量和全局变量在讨论函数的形参 ...
- c语言实现结构体变量private,C语言中结构体变量私有化详解
背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...
- 如何在不同开发语言中使用绑定变量_linux C/C++服务器后台开发面试题总结(编程语言篇)...
整篇分为四部分,篇幅较长,建议先收藏. 一.编程语言 1.根据熟悉的语言,谈谈两种语言的区别? 主要浅谈下C/C++和PHP语言的区别: 1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较 ...
- c语言静态函数调用静态变量_C语言中的静态变量和函数
c语言静态函数调用静态变量 C中的静态变量 (Static Variables in C) Basically, when static variables are declared, they cr ...
最新文章
- 单击时选择HTML文本输入中的所有文本
- 23解析函数的级数表示(二)
- 思科GNS3和华为eNSP完美结合
- 谈谈iOS多线程的锁
- 如何开启计算机cpu虚拟化,如何开启cpu虚拟化_VMware Workstation 中如何开启CPU 的虚拟化支持?...
- 如何计算文件MD5 sha1 -- 微软MD5/SHA1 校验工具 Microsoft File Checksum Integrity Verifier
- SQLite System.DllNotFoundException for SQLite.Interop.dll
- u深度制作linux启动盘制作工具,U深度制作u盘启动盘制作工具
- Web前端-BOM之Navigator对象
- ubuntu上安装源代码阅读工具Source-Navigator
- Linux下识别NTFS格式的U盘
- 小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。
- Vue Clipboard 异步复制粘贴
- Python——定义全局变量
- 三层架构(我的理解及详细分析)
- android系统自带字体设置,安卓手机系统字体设置-系统字体设置(Big Font) 安卓版v2.37-PC6安卓网...
- 神州退市,一嗨要上市
- 2022二级建造师《施工管理》考前冲刺试题与答案
- php云人才系统 怎么整合ucenter,phpcms如何整合UCenter
- 使用ElasticSearch进行文档搜索
热门文章
- 【SAP PO】SAP PO 接口配置完整教程之二REST服务对接
- react native Xcode打包app发布ipa到蒲公英
- 新入手Seagate希捷1TB移动硬盘1t USB3.0一个
- 数学分析_Tom Apostol_定理7.48:黎曼可积的充要条件
- 面试官问:为什么 Java 线程没有Running状态?我懵了
- verilog语言中的@什么意思 verilog语言中的@什么意思
- 第九篇:万丈高楼平地起-驱动编程基础知识点
- 题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例 括号必须依照 ()顺序表示, ()[]
- 案例分享:Qt + 树莓派3B+ 智能笔筒系统
- 活动图、类图、顺序图、状态图