关于函数返回值的问题!(它到底存储在哪?)

tseny 2004-05-05 03:24:48
如函数
1.int fun()
2.string fun()
请解释一下?
是放在主存中还是寄存器中,特别讲一下返回对象时(如2. 虽不太常用到吧!?)
多谢!
...全文
131 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
积木 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++里面按反汇编代码,查看一下函数的汇编代码就清楚了!
FoxMale007 2004-05-05
  • 打赏
  • 举报
回复
MAIN函数也是函数
函数返回值是放在堆栈里的啊
ghiewa 2004-05-05
  • 打赏
  • 举报
回复
呵 又学到一手
Iforgot 2004-05-05
  • 打赏
  • 举报
回复
好像C++不能返回对象,除非该对象是函数外面创建的(这时返回就没意义了)。

你可以自己在某个函数里创建对象,返回,然后看看结果。对象肯定是没了的。


在C++里,对象的生命周期为函数执行域,函数退出时,对象也销毁了。
julyclyde 2004-05-05
  • 打赏
  • 举报
回复
是应该在AX的
汇编时代的约定
内容概要:本文围绕基于多目标粒子群算法(MOPSO)的配电网储能选址定容优化问题展开研究,旨在通过智能优化算法解决主动配电网中储能系统的科学规划难题。研究构建了综合考虑降低网损、提升电压稳定性、提高新能源消纳能力等多重目标的数学模型,详细阐述了目标函数设计、约束条件处理及多目标优化求解流程,并采用Matlab编程实现算法仿真,以IEEE 33节点或69节点标准测试系统进行验证,最终获得一组Pareto最优解集,为决策者提供灵活的储能配置方案选择依据。文档还配套提供了完整的Matlab代码与网盘资源,便于读者复现实验并深化理解。; 适合人群:具备电力系统基础知识和Matlab编程能力的科研人员、电气工程相关专业的研究生,以及从事电网规划、储能系统设计与优化工作的工程技术与研究人员。; 使用场景及目标:①用于教学与科研中深入理解多目标优化算法在储能配置中的实际应用;②为实际配电网中储能系统的选址与定容提供可复用的算法工具与仿真参考;③支撑含分布式电源的主动配电网优化调度、重构分析、可靠性评估等相关课题的研究与工程实践。; 阅读建议:建议读者结合文中提供的Matlab代码与网盘资料进行动手实践,重点关注算法实现细节、模型构建逻辑与仿真结果分析,同时可进一步拓展学习NSGA-II、DBO、PSO变体等其他智能优化算法在电力系统中的应用,以全面提升解决复杂优化问题的能力。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧