众所周知,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语言中的各种变量是如何存储的(-)相关推荐

  1. python中可以使用变量来引用函数吗_如何在python语言中使用函数变量并调用函数...

    在python语言中,除了常规变量之外,还有函数变量.把函数本身赋值给变量,这个变量为函数变量. 工具/原料 python pycharm 截图工具 WPS 方法/步骤 1 在已新建的python文件 ...

  2. python以下是变量合法命名的是_Python语言中以下哪个变量的命名是错误的

    [单选题]雨篷.阳台计量不正确的是( ) . [单选题]关于补体活化的MBL途径,哪项是错误的? [单选题]关于楼地面垫层的计量规则,描述错误的是( ). [单选题]根据<建设工程工程畺清单计价 ...

  3. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  4. C语言中的 static变量(全局和局部)、static函数总结

    简介: C语言中的 static变量(全局和局部).static函数总结 文章目录 本博文的简述or解决问题? 同步博文: static 变量: 静态局部变量: 静态全局变量: static 函数-. ...

  5. java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...

    Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou 更多相关问题 [单选题]下列因素中不是经济中内在稳定器的是 [单选题]外在时滞是以下哪两 ...

  6. A13在c语言中是合法变量吗,C语言中局部变量和全局变量等在内存中的存放位置.doc-资源下载在线文库www.lddoc.cn...

    C语言中局部变量和全局变量_等在内存中的存放位置.doc C 语言中局部变量和全局变量 变量的存储类别static,extern,auto,register 8.8 局部变量和全局变量在讨论函数的形参 ...

  7. c语言实现结构体变量private,C语言中结构体变量私有化详解

    背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...

  8. 如何在不同开发语言中使用绑定变量_linux C/C++服务器后台开发面试题总结(编程语言篇)...

    整篇分为四部分,篇幅较长,建议先收藏. 一.编程语言 1.根据熟悉的语言,谈谈两种语言的区别? 主要浅谈下C/C++和PHP语言的区别: 1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较 ...

  9. c语言静态函数调用静态变量_C语言中的静态变量和函数

    c语言静态函数调用静态变量 C中的静态变量 (Static Variables in C) Basically, when static variables are declared, they cr ...

最新文章

  1. 单击时选择HTML文本输入中的所有文本
  2. 23解析函数的级数表示(二)
  3. 思科GNS3和华为eNSP完美结合
  4. 谈谈iOS多线程的锁
  5. 如何开启计算机cpu虚拟化,如何开启cpu虚拟化_VMware Workstation 中如何开启CPU 的虚拟化支持?...
  6. 如何计算文件MD5 sha1 -- 微软MD5/SHA1 校验工具 Microsoft File Checksum Integrity Verifier
  7. SQLite System.DllNotFoundException for SQLite.Interop.dll
  8. u深度制作linux启动盘制作工具,U深度制作u盘启动盘制作工具
  9. Web前端-BOM之Navigator对象
  10. ubuntu上安装源代码阅读工具Source-Navigator
  11. Linux下识别NTFS格式的U盘
  12. 小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。
  13. Vue Clipboard 异步复制粘贴
  14. Python——定义全局变量
  15. 三层架构(我的理解及详细分析)
  16. android系统自带字体设置,安卓手机系统字体设置-系统字体设置(Big Font) 安卓版v2.37-PC6安卓网...
  17. 神州退市,一嗨要上市
  18. 2022二级建造师《施工管理》考前冲刺试题与答案
  19. php云人才系统 怎么整合ucenter,phpcms如何整合UCenter
  20. 使用ElasticSearch进行文档搜索

热门文章

  1. 【SAP PO】SAP PO 接口配置完整教程之二REST服务对接
  2. react native Xcode打包app发布ipa到蒲公英
  3. 新入手Seagate希捷1TB移动硬盘1t USB3.0一个
  4. 数学分析_Tom Apostol_定理7.48:黎曼可积的充要条件
  5. 面试官问:为什么 Java 线程没有Running状态?我懵了
  6. verilog语言中的@什么意思 verilog语言中的@什么意思
  7. 第九篇:万丈高楼平地起-驱动编程基础知识点
  8. 题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例 括号必须依照 ()顺序表示, ()[]
  9. 案例分享:Qt + 树莓派3B+ 智能笔筒系统
  10. 活动图、类图、顺序图、状态图