社区
C++ 语言
帖子详情
关于函数返回值的问题!(它到底存储在哪?)
tseny
2004-05-05 03:24:48
如函数
1.int fun()
2.string fun()
请解释一下?
是放在主存中还是寄存器中,特别讲一下返回对象时(如2. 虽不太常用到吧!?)
多谢!
...全文
66
13
打赏
收藏
微信扫一扫
点击复制链接
分享
举报
写回复
13 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
积木
2004-05-06
2.string fun()
这个东西很有趣,在C++中通常将其处理为
fun(string& __result)
调用的时候例如
string str = fun();
就可能变成
string __temp;
fun(__temp);
str(__temp);
所以说这种调用会产生一个临时对象的。
打赏
举报
回复
赞
Wolf0403
2004-05-06
三井:最后一句应该是“所以说这种调用不会产生一个临时对象的。”
吧。。。
如果
string fun()
{
return string("Hello");
}
编译器几乎都会优化掉这个 string 匿名对象而变成三井所说的形式。
但是
string fun()
{
string rt("Hello");
// ... more operations here
return rt;
}
很多时候也许就不会优化了。
Dev-C++ 和 VC debug 模式似乎是这样子的:只能优化匿名对象。
打赏
举报
回复
赞
02051223
2004-05-06
楼上的见解很深呀!
平时只是考虑他是放在栈中就没有多想了!
看了你的帖子后又学到了一招。
哈哈
打赏
举报
回复
赞
playmud
2004-05-05
问:ra3(可乐)
生命结束指的是什么?
打赏
举报
回复
赞
vcchunhong
2004-05-05
反汇编 不懂看~呵~
打赏
举报
回复
赞
lxh1010
2004-05-05
放在栈中,反汇编就可以看到
打赏
举报
回复
赞
xiaozhong
2004-05-05
应该是防在栈里面
打赏
举报
回复
赞
ra3
2004-05-05
放栈内存中;
会新建一个 string 对象放在栈内存中, 比如
string str = fun();
这一行调用完成后 str 的生命结束。
打赏
举报
回复
赞
HashCodeWithJava
2004-05-05
有的是存在堆栈里面.不过我看了有很多标准的C代码是存放在ax寄存器的.
你可以在visual C++里面按反汇编代码,查看一下函数的汇编代码就清楚了!
打赏
举报
回复
赞
applebomb
2004-05-05
MAIN函数也是函数
函数返回值是放在堆栈里的啊
打赏
举报
回复
赞
ghiewa
2004-05-05
呵 又学到一手
打赏
举报
回复
赞
Iforgot
2004-05-05
好像C++不能返回对象,除非该对象是函数外面创建的(这时返回就没意义了)。
你可以自己在某个函数里创建对象,返回,然后看看结果。对象肯定是没了的。
在C++里,对象的生命周期为函数执行域,函数退出时,对象也销毁了。
打赏
举报
回复
赞
julyclyde
2004-05-05
是应该在AX的
汇编时代的约定
打赏
举报
回复
赞
相关推荐
ERP沙盘模拟实践实验报告.docx
ERP沙盘模拟实践实验报告
算法分析与设计实验报告-求最大子段和实验报告(含源代码).doc
算法分析与设计实验报告-求最大子段和实验报告(含源代码).doc
Awesome_Game_UI_Pack_Button_Pack_and_Icon_pack_16_v1.0
Awesome_Game_UI_Pack_Button_Pack_and_Icon_pack_16_v1.0
某公司ERP生产管理系统实验报告.docx
某公司ERP生产管理系统实验报告
算法分析与设计之引言.pps
算法分析与设计之引言.pps
基于51单片机的数字电容测量仪设计实验报告.doc
基于51单片机的数字电容测量仪设计实验报告.doc
云外归鸟的图像处理支持库1.1#0版(第三方)
资源介绍:。易语言YunImage.fne支持库中文名为易语言图像处理支持库,本易语言支持库支持库封装了CxImage图像处理库。易语言YunImage.fne支持库为一般支持库,需要易系统3.6版本的支持,需要系统核心支持库3.7版本的支持,提供了5种库定义数据类型,提供了215种命令,提供了53个库定义常量。易语言图像处理支持库为易语言第三方支持库。操作系统需求: Windows。资源作者:。易语言论坛。资源界面:。资源下载:。
响应光盘行动-拒绝餐饮浪费-主题班会教案.docx
响应光盘行动-拒绝餐饮浪费-主题班会教案.docx
Java项目:企业人事系统(java+SpringBoot+Vue+ElementUI+maven+mysql)
项目介绍 人事管理系统功能包括人事通讯,员工信息,人事考评,奖惩,培训管理,薪资管理,统计分析,和系统管理六大模块,对应人事工作基本流程:新员工入职档案建立,调动,辞职,员工信息的查询及工资管理等方面.系统管理可以根据不同的角色分配菜单权限设置,不同的用户授予不同角色,对人事结构,单位结构进行整体调配设置.
在
线聊天可以实现操作员之间讯息的及时通讯. 项目基于MVVM的前后端分离开发模式进行开发.MVVM即模型(Model)-视图(View)-视图模型(View Model),实现了数据视图的双向绑定.相对于MVC模式和MVP来说,MVVM是一个比较新的开发架构,
它
是一种将MVP模式与WPF相结合应用方式发展演变而成的新型开发架. 前后端分离是指将前端和后端从之前的全部由后端负责中分离开来,不再共用一个Server,前端作为一个独立Serve存
在
.前后端通过接口使用HTTP协议交互,本项目使用vu实体属性outer做前端路由处理.页面跳转不
在
由后端处理,前后端只是数据的交互.前后端分离的好处
在
于降低了前后端的耦合性.当面对不同的硬件场景时,需要构建不同的界面,前后端分离之后,只需要扩展
2020年高考英语试卷(北京卷-附答案).docx
2020年高考英语试卷(北京卷-附答案).docx
精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf
精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf精选大学生互联网+创业项目经验分享演讲发言稿三篇.pdf
数据管理与数据库:第1章 数据库概述.pdf
数据管理与数据库:第1章 数据库概述.pdf
数据管理与数据库:第11章 安全管理.pdf
数据管理与数据库:第11章 安全管理.pdf
算法与程序设计竞赛 第二章 动态规划.ppt
算法与程序设计竞赛 第二章 动态规划.ppt
课程设计-基于C++的mfc框架的学生社团管理系统(源码+数据库+报告).zip
本系统实现的功能 本程序为单文档应用程序,主程序界面能实现查询社团信息、修改社团信息、删除社团信息、添加社团信息、入团、退团、用户登录、和用户管理功能其中修改社团信息、删除社团信息、添加社团信息和用户管理需要用户登录后才能使用,未登录就点击使用的会会弹出对话框显示您还没有登录,点击登录按钮会弹出用户登录对话框输入正确的用户名称和密码若验证成功则会显示登录成功并显示出您用有的权限高级管理员或者是普通管理员,高级管理员则可以对社团信息进行修改、删除、添加。点击入团按钮会弹出加入社团对话框,
在
对话框内填上相应的信息后点击确定成功加入后会有相关提示,若没有成功则有可能您输入的社团不存
在
,点击退团按钮弹出退出社团对话框,输入您要退出的社团名称和学号点击确定如果成功退出会显示成功的标志,否则的话就是您没有假如该社团活着您填的信息不完全。
在
主程序对话框中可以直接
在
控件内输入要修改的社团信息,然后点击修改按钮,分别输入控件中的内容然后点击添加按钮,若要添加的社团当前没有的话则添加成功,否则会失败。登录了以后点击用户管理按钮则会弹出用户管理对话框,
在
该对话框内可以修改用户密码,高级管理员还能注册新用户。
某卷烟厂ERP系统总体方案.docx
某卷烟厂ERP系统总体方案
IDEA编辑器 - 类、方法模板配置
本文主要讲述如何
在
IDEA 编辑器类、方法模板,方便以后升级IDEA 或者到新环境开发能快 速配置,涵盖了配置方法模板的所有重要知识点。
人工智能-机器学习-循环流化床锅炉温度场检测与处理系统的软件开发.pdf
人工智能-机器学习-循环流化床锅炉温度场检测与处理系统的软件开发.pdf
发帖
C++ 语言
加入
微信扫一扫
点击复制链接
6.1w+
社区成员
24.9w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
社区管理员
申请成为版主
帖子事件
创建了帖子
2004-05-05 03:24
社区公告
暂无公告