前言
-----今天开始分享C语言里面的存储类型、作用域、生命周期、链接属性等知识点,我们写完一个程序,不只说知其,更要知其所以然。
概念简介:
- 存储类 -
(1)存储类就是存储类型,也就是描述C语言变量在何种地方存储。
(2)内存有多种管理方法:栈、堆、数据段、bss段、.text段等,其实这个Linux环境可以查看以ELF结尾的可执行程序,可以看到所说的这些的;一个变量的存储类属性就是描述这个变量存储在何种内存段中。
root@ubuntu-virtual-machine:/home/ubuntu# readelf hello-world -S
There are 29 section headers, starting at offset 0x1930:
节头:
[号] 名称 类型 地址
偏移量
大小 全体大小 旗标 链接 信息
对齐
[ 0] NULL 0000000000000000
00000000
0000000000000000 0000000000000000 0 0
0
[ 1] .interp PROGBITS
0000000000000238
00000238
000000000000001c 0000000000000000 A 0 0
1
[ 2] .note.ABI-tag NOTE
0000000000000254 00000254
0000000000000020 0000000000000000 A 0 0
4
[ 3] .note.gnu.build-i NOTE
0000000000000274 00000274
0000000000000024 0000000000000000 A 0 0
4
[ 4] .gnu.hash GNU_HASH
0000000000000298 00000298
000000000000001c 0000000000000000 A 5 0
8
[ 5] .dynsym DYNSYM 00000000000002b8 000002b8
00000000000000a8 00000