问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言哪些函数语句的机器码会存储在内存中?

发布网友 发布时间:2022-04-30 19:20

我来回答

5个回答

热心网友 时间:2022-06-30 04:20

自然不会,每一个变量(包括函数)都有自己的生命周期,程序结束后释放所有的内存,程序运行时只有被声明为inline内联函数,或者正在被调用的函数(也就是你上面收提及的第一种情况)存储在内存中(栈区),调用完毕后立即释放内存。
回答完毕,祝楼主学习进步。

热心网友 时间:2022-06-30 04:21

你这个问题回答起来比较复杂。首先C语言肯定是被编译到了机器代码了,机器代码只有被装载到内存后由才可以被CPU执行。机器代码被我们称为可执行文件,具体而言就是一种有格式的文件linux上面一般是ELF格式,windows上一般为PE格式。说白了操作系统干的事情就是读文件然后给CPU执行的过程。一个函数就是一条跳转指令,告诉系统我该跳转到哪一行。
而且现代的操作系统都有设计动态链接库,所以如果你的函数是动态加载的,那么它不会一开始就加载到内存里面。另外,由于内存分页原理,如果程序不是立即被执行,也可能交换到磁盘上。如何调度和操作系统相关。

你所关心的问题其实是可执行程序的加载过程。对于ELF格式的文件而言这个过程可以简单的理解为:
用户通过shell执行程序,shell通过execve进入系统调用。(User-Mode)
sys_execve经过一系列过程,并最终通过ELF文件的处理函数load_elf_binary将用户程序和ELF解释器加载进内存,并将控制权交给解释器。(Kernel-Mode)
ELF解释器进行相关库的加载,并最终把控制权交给用户程序。由解释器处理用户程序运行过程中符号的动态解析。(User-Mode)来自:求助得到的回答

热心网友 时间:2022-06-30 04:21

没错,函数在代码段,会被加载到内存,调用函数时,通过call指令跳转到函数所在的内存地址执行函数。
对代码用OD调试、反汇编,可以看到函数所在的内存地址。

对于Windows下,一般可执行文件是以PE格式存在的。如果对加载细节感兴趣,搜索“PE文件格式详解”。

热心网友 时间:2022-06-30 04:22

一般来讲,程序不是很大的时候,程序的代码肯定都会装载到内存中,除非是程序大到没法全部装入操作系统给其分配的空间的时候,就会有一部分存在外存,用的时候替换进去

热心网友 时间:2022-06-30 04:22

不会。C是用一次执行一次,不用时释放。不过你的变量得都是临时变量才不会占多余空间,如果是指针就保存到你指向的变量;如果是全局变量的话一开始就会占空间。追问我说的是指令会不会存到内存中,不是变量存储

追答C

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我网贷一万,手续费300,分24期,每期506.67,请问怎么计算月息,和年利率... 多普达手机铃音多普达手机铃声 【车载软件推荐】有车一族必备软件有哪些?好用的车主必备app 我画画时常被说我画画不动脑筋,弱弱的问一句,画画怎样动脑筋? 三星手机如何设置时间在桌面显示? 精确到十分位,要看小数点右边第一位 对吗 要把一个小数精确到十分位,就要看这个小数的( )A.十分位B.百分位C... 黑米算不算粗粮 存定期协议利率选是还是否? 同城上那些卖二手ndsi的是真的吗? oppok3忘记密码了怎么解锁? c语言0.5的机器码是多少? 原码和机器码有什么区别? c语言是如何被开发出来的?函数和循环语句怎么对应机器码? 30岁单身已婚女人每天晚上调广场舞真的好吗? C程序中,若定义int x=161; int y=-161;则变量x和y对应的机器码分别是什么? OPPO K3的锁屏密码忘了,可以自行解锁吗? C语言编译到机器码的过程?求详细解说,不胜感激 C语言中int、short、char、long型变量在内存中存储的机器码是采用什么编码? C6H机器码可以表示哪些 c语言中,有个机器码是什么意思? C语言代码编译成的是机器码,那么怎么实现可移植性呢? 为什么在Word里面有✓,发给别人就是R,没有勾? 请问c语言的源程序被编译后的代码是机器码吗? 为什么在WPS软件上编辑的文档发送到手机上就会变样,比如说勾勾变成了R,叉叉变成了F? 手机看word文件对号变成了r 为什么文档电脑上是勾手机上就变R了? 奖励是什么 暗黑三S4赛季旅程奖励介绍 赛季旅程征服350个怪 没做的来 暗黑三25赛季武僧武器怎么获得 OPPO手机如何强制解锁? c编程的一个工程在keil调试中怎么总是出现机器码 C语言编译后是生成汇编代码还是直接生成机器代码?? 解释一下什么是单片机机器码是什么?? 合肥168高中哪个校区好?想借读合肥168中学,请问哪个校区好- 问一问 C语言翻译成机器码,一定先要翻译成汇编吗? 合肥168学区房有哪些小区? C语言中已知机器码如何求原码? 合肥168初中部有几个 手上的五个指头分别叫什么? 合肥168高中哪个校区好? 意大利面的肉酱用牛肉还是猪肉好? 亲人接灯(猜明朝一位名人)? 合肥168中学在哪? 亲人接灯打一个明朝人名? 删除OPPO账户会导致账户绑定的游戏一下删除吗? 安徽合肥的1中6中8中168中分别在哪个区 手五个手指分别带表什么职业的人? 亲人接灯打一明朝诗人? 亲人接灯(猜明朝一位名人)