c语言中的变量存放在哪里,你的变量究竟存储在哪里?

编程入门 行业动态 更新时间:2024-10-13 06:15:29

c语言中的<a href=https://www.elefans.com/category/jswz/34/1771380.html style=变量存放在哪里,你的变量究竟存储在哪里?"/>

c语言中的变量存放在哪里,你的变量究竟存储在哪里?

c语言变量存储问题

在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。

在函数外部定义的变量(全局变量或静态外部变量)和在函数内部定义的static变量,其生存期就是程序运行的全过程,这些变量被存储在数据段(datasegment)中。

在函数内部定义的auto变量(没有用关键字static定义的变量)的生存期从程序开始执行其所在的程序块代码时开始,到程序离开该程序块时为止。作为函数参数的变量只在调用该函数期间存在。这些变量被存储在栈(stack)中。

你的变量究竟存储在什么地方?

作者:杨小华

我相信大家都有过这样的经历,在面试过程中,考官通常会给你一道题目,然后问你某个变量存储在什么地方,在内存中是如何存储的等等一系列问题。不仅仅是在面试中,学校里面的考试也会碰到同样的问题。

如果你还不知道答案,请接着往下看。接下来,我们将在Linux操作系统上,以GCC编译器为例来讲解变量的存储。

在计算机系统中,目标文件通常有三种形式:

1.可重定位的目标文件:包含二进制代码和数据,与其他可重定位目标文件合并起来,创建一个可执行目标文件。

2.可执行的目标文件:包含二进制代码和数据,其形式可以被直接拷贝到存储器中并执行

3.共享目标文件:一种特殊的可重定位目标文件,即我们通常所说的动(静)态链接库

一个典型的可重定位目标文件如下图所示:

高地址

节头部表

.strtab

.line

.debug

更多推荐

c语言中的变量存放在哪里,你的变量究竟存储在哪里?

本文发布于:2024-03-05 23:49:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1713783.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   放在   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!