社区
C++ 语言
帖子详情
求助,有返回值的函数,但在代码里直接return
chxy85
2011-09-13 09:50:54
int fun()
{
return;
}
这种情况似乎会返回随机值,请问原理是什么。从哪取的值?
...全文
322
16
打赏
收藏
求助,有返回值的函数,但在代码里直接return
int fun() { return; } 这种情况似乎会返回随机值,请问原理是什么。从哪取的值?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chxy85
2011-09-13
打赏
举报
回复
可以确定,是从eax寄存器取的值,不过对这块不是很清楚,还得学习下啊
小笨熊
2011-09-13
打赏
举报
回复
这个问题。。。
辰岡墨竹
2011-09-13
打赏
举报
回复
如果不写return的话,对于int型的会自动返回0。
但是如果写了return不写值的话,C编译器一般用EAX寄存器作为返回值。
不知道EAX的话,去看80x86 CPU架构。
yuyan_linger
2011-09-13
打赏
举报
回复
c++编译器肯定报错的 但是如果是下面这样 就只有警告而已了 至于返回值 debug和release下一般处理是不一样的
int f()
{
if(0)
{ return 1;}
}
chxy85
2011-09-13
打赏
举报
回复
eax值在哪。?。eax值在哪。?。
worldy
2011-09-13
打赏
举报
回复
原型定义有返回值得情况下,编译器会在栈空间里确定一个位置返回数据(即将返回值拷贝到该位置)
当你使用Return aVal 返回,则会将aVal拷贝到返回位置里,使用Return 则不会拷贝值到该返回位置
那么,该返回位置上的内容将是不定的,原来是什么就是什么,所以你的到的是个随机数!
jackyjkchen
2011-09-13
打赏
举报
回复
[Quote=引用 7 楼 maxwell 的回复:]
我记得好像在vc6下c++代码不写return不报错,有次改别人的代码发现是一个分支漏了return。
[/Quote]
分支遗漏只会给警告
luciferisnotsatan
2011-09-13
打赏
举报
回复
[Quote=引用 5 楼 jackyjkchen 的回复:]
C的话这个函数不写return都没事,C++会错
也不是随机值,就是原来eax的值,x86的返回值小于4字节就存在eax里
[/Quote]
++
语言规定就是这样
vc里,文件名后缀.c,按C来编。后缀.cpp,按C++编
zyc_glboy
2011-09-13
打赏
举报
回复
没这么写过,要是这个函数没什么用干嘛不返回0
或者返回值设为void
Maxwell
2011-09-13
打赏
举报
回复
我记得好像在vc6下c++代码不写return不报错,有次改别人的代码发现是一个分支漏了return。
healer_kx
2011-09-13
打赏
举报
回复
最好报错! C#里面有一个路径你不返回值都会报错呢。
jackyjkchen
2011-09-13
打赏
举报
回复
C的话这个函数不写return都没事,C++会错
也不是随机值,就是原来eax的值,x86的返回值小于4字节就存在eax里
jackyjkchen
2011-09-13
打赏
举报
回复
C++会报错吧
C不记得了,好像可以
至善者善之敌
2011-09-13
打赏
举报
回复
一般VOID类型函数才返回return;
AnwJiango
2011-09-13
打赏
举报
回复
确定能编译过 ?
turing-complete
2011-09-13
打赏
举报
回复
发两遍这个问题,值得投诉一下了,着实让人纠结,CSDN怎么搞的?
JS中
return
一个
函数
与
直接
return
一个
函数
变量的区别
本文通过两个实例,详细解析了JavaScript中
return
一个
函数
与
直接
return
一个
函数
变量的区别,阐述了闭包的概念及其形成原理。
一个
函数
有
返回值
但不
return
,也能拿到值
当一个C语言
函数
有
返回值
但忘记
return
时,GCC编译器不会报错,甚至可能正确
返回值
。这是因为GCC通过寄存器返回指针。虽然VS2017会报错,但在GCC环境下,由于内存分配后的地址被放入寄存器,使得调用者意外地能获取到指针并访问内存。
C语言--有
返回值
与无
返回值
的
函数
调用(
函数
内容一)
本文深入探讨了C语言中
函数
调用的两种常见方式:有
返回值
和无
返回值
。通过实例
代码
,解释了值传递过程中实参和形参的关系,以及如何通过
返回值
在
函数
间传递数据。强调了在无
返回值
函数
中,由于值传递的单向性,无法
直接
改变主调
函数
中变量的值。同时,对比了有
返回值
函数
的使用,展示了如何通过
return
语句将计算结果返回给主调
函数
。最后,提到了利用指针作为参数来实现变量值的
直接
修改,以达到预期效果。
有
返回值
的
函数
return
无法跳出
本文通过一个C#
代码
示例介绍了如何使用
return
语句从
函数
返回值
,并展示了如何根据
返回值
决定外部
函数
的行为。
return
函数
本文详细讲解了
return
在编程中的作用,包括
返回值
的使用、void
函数
的
return
处理以及在不同场景下的最佳实践,强调了栈在
return
工作原理中的关键角色和void
函数
中显式
return
的重要性。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章