社区
C++ 语言
帖子详情
编译器为什么要为函数参数生成临时副本?
zcphoenix
2007-10-25 09:33:41
如题!
谢谢!
...全文
203
10
打赏
收藏
编译器为什么要为函数参数生成临时副本?
如题! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hwman
2007-10-27
打赏
举报
回复
另外,vb6中默认也是直接使用实参
hwman
2007-10-27
打赏
举报
回复
有些语言是直接拿实参来用的,比如 fortran77。这两种方法各有忧劣
星羽
2007-10-26
打赏
举报
回复
你说的副本是什么意思,传值本来就是要拷贝一份
HULIHONG
2007-10-26
打赏
举报
回复
为了保护参数吧
珍惜生命远离CPP
2007-10-26
打赏
举报
回复
cdecl函数调用方式的规定.
tt0444
2007-10-26
打赏
举报
回复
a <---------栈
b
. <---------call函数时候编译器在主栈上"下拉"一些空间,当然还要保存相关的寄存器
.
.
.
push a <--------所谓的副本
push b
call fun1 <---------函数
xiantongyuan
2007-10-26
打赏
举报
回复
觉得是语言的原因,要不然为什么要区分,传值,传指针,传引用呢
而且当传引用的时候就是那得实参来用的,还有拷贝吗?
neversaydie518
2007-10-26
打赏
举报
回复
编译原理课本上有的,系统会分配一个栈空间,里面是和函数相关的信息,比如,参数,局部变量,上层函数地址等等。看看书就知道了。
珍惜生命远离CPP
2007-10-26
打赏
举报
回复
lz还是看看汇编 找函数调用部分 使用栈传递参数
zcphoenix
2007-10-26
打赏
举报
回复
楼上:其实不只是传值的时候要拷贝一份的。
我的意思就是:为什么编译器一定要拷贝一份?不能直接把实参拿来用吗?
谢谢!
你必须知道的495个C语言问题
6.21 当数组是函数的参数时,为什么sizeof不能正确报告数组的大小? 6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小...
Java常考面试题 下载
每个类至少有一个构造函数,如果没有显式定义,则默认构造函数由
编译器
自动
生成
。 - **构造函数重载**: 类可以定义多个构造函数,只要每个构造函数的参数列表不同。这样可以根据不同的初始化需求创建对象。 - **复制...
C++
编译器
提供的合成默认构造函数详解
这里说的
编译器
提供的默认合成构造函数指的是nontrivial default constructor,即有用的默认合成构造函数。 对于Class X,如果没有用户声明的构造函数,那么会有一个默认的构造函数被隐式声明出来,这个声明出来的...
C语言中
函数参数
传递的三种方式
C语言中
函数参数
传递的三种方式(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新
生成
一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。(2)传址,就是传变量的地址...
类对象作为
函数参数
传递,会调用析构函数
类对象作为
函数参数
传递时,将会产生对象的
副本
,而这个
副本
是调用类中的拷贝构造函数实现的,如果类中没有自定义拷贝构造,
编译器
会自动
生成
一个缺省的函数,该函数有以下特点: 1、对于基本类型的成员变量,按字节...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章