社区
C++ 语言
帖子详情
编译器为什么要为函数参数生成临时副本?
zcphoenix
2007-10-25 09:33:41
如题!
谢谢!
...全文
229
10
打赏
收藏
编译器为什么要为函数参数生成临时副本?
如题! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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++中
编译器
会为类
生成
哪些函数
C++
编译器
会自动为类
生成
8种默认函数,包括构造函数、析构函数、拷贝构造函数、赋值运算符等,以简化代码编写并确保对象基本功能。这些默认函数执行浅拷贝操作,适用于简单数据类型,但对于包含指针或需资源管理的类...
C++
编译器
提供的合成默认构造函数详解
这里说的
编译器
提供的默认合成构造函数指的是nontrivial default constructor,即有用的默认合成构造函数。 对于Class X,如果没有用户声明的构造函数,那么会有一个默认的构造函数被隐式声明出来,这个声明出来的...
C语言中
函数参数
传递的三种方式
C语言中
函数参数
传递的三种方式(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新
生成
一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。(2)传址,就是传变量的地址...
C++ 语言
65,209
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章