社区
脚本语言
帖子详情
问个函数编译的问题
骏马金龙
2018-10-04 12:52:25
编程语言里的函数,包括函数名、参数、函数体。在编译期间,函数名会编译好,但是函数体也会一起编译好吗?还是说函数体是在程序执行的时候才解析?
还有函数参数问题,如果不是带有默认值的参数,应该是编译期间解析好的,但如果是带有默认值的参数,这个默认值是在编译期间做的初始化赋值的还是程序执行期间再赋值的?
另外,有没有关于这方面的书推荐的。
谢各位大佬解惑
...全文
354
1
打赏
收藏
问个函数编译的问题
编程语言里的函数,包括函数名、参数、函数体。在编译期间,函数名会编译好,但是函数体也会一起编译好吗?还是说函数体是在程序执行的时候才解析? 还有函数参数问题,如果不是带有默认值的参数,应该是编译期间解析好的,但如果是带有默认值的参数,这个默认值是在编译期间做的初始化赋值的还是程序执行期间再赋值的? 另外,有没有关于这方面的书推荐的。 谢各位大佬解惑
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sanGuo_uu
2018-10-09
打赏
举报
回复
1,函数当然是整个函数都编译好
2,我理解的是,把函数整个的编译好,你调用的时候,传入参数(没传就取默认值),然后它根据这些参数执行函数里的程序
3,具体你想了解什么?——编译原理吗
(感觉你的理解有误区,它肯定是执行的时候赋值啊)
语言有2种:解释、编译。c/java都是编译型的,一般的脚本语言(如javascript)都是解释型
编译是全部代码都编译完,通过了,才允许执行。
解释是翻译一行,执行一行。
最全的C和C++语言笔试面试题汇总
最全的C和C++语言笔试面试题汇总,我大四时候找工作时候他帮上了很多忙,里面的题目经常考到。希望对大家有帮助。
Dalvik虚拟机 PPT版
Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。Android应用程序中的Dalvik虚拟机实例实际上是从Zygote进程的地址空间拷贝而来的,这样就可以加快Android应用程序的启动速度。Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时
编译
(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等,差别在于两者执行的指令集是不一样的,并且前者的指令集是基本寄存器的,而后者的指令集是基于堆栈的。这个PPT讲Dalvik虚拟机的内存管理、垃圾收集、即时
编译
、Java本地调用、进程和线程管理等。理解Dalvik虚拟机的上述实现细节,有助于在运行时修改程序的行为,例如,拦截Java
函数
的调用。
C++
函数
编译
原理和成员
函数
的实现
C++
函数
编译
C++和C的
编译
原理不同,C中的
函数
在
编译
时名字不变,或者简单的加一个_(不同的
编译
器
编译
方式不同)。而C++中的
函数
在
编译
时会根据它所在的命名空间、所属的类以及参数列表等信息进行重命名,形成一个新的
函数
名。这个
函数
名只有
编译
器知道,用户是不可见的,对
函数
重命名的过程叫做 名字编码。这样就保证了即使是
函数
的重载,根据参数列表的不同也能
编译
出不同的名字。 成员
函数
的调用 成员
函数
最终会被
编译
成与对象无关的全局
函数
,如果
函数
中没有成员变量,那
问题
就很简单了,不用对
函数
做任何处理,直接调用就行。
如何识别C++
编译
以后的
函数
名
C/C++语言在
编译
以后,
函数
的名字会被
编译
器修改,改成
编译
器内部的名字,这个名字会在链接的时候用到。如果用之类的
函数
打印堆栈时,显示的就是被
编译
器修改过的名字,比如说_Z3foov。那么这个
函数
真实的名字是什么呢?每个
编译
器都有一套自己内部的名字,这里只是针对linux下g++而言。以下是基本的方法: 每个方法都是以_Z开头,对于嵌套的名字(比如名字空间中的名字或者是类中间的名字,比如Class::Func)后面紧跟N , 然后是各个名字空间和类的名字,每个名字前是名字字符的长度,再以E结尾。...
C/C++
函数
编译
后的样子
int max(int a,int b);这样一个简单的
函数
,C和C++
编译
后是不一样的 C语言
编译
后是:_max C++
编译
后是:?max@@YAHHH@Z (参数是
编译
时
函数
的一部分,这个C++支持重载的原因)
脚本语言
37,743
社区成员
34,213
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章