水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
下页
|
尾页
|
1/3
|
转到
主题:一个函数没有返回值,会发生什么?标准有什么规定吗?
楼主
|
Madlee
|
2021-06-16 11:31:19
|
只看此ID
我的一个一个函数,忘了return,但这个返回值没用。gcc O3优化直接挂了
有时候 segment fault. 有时候就直接进入一个无限循环。
后来加上一个return就一切正常了。
double foo() { // blablabla // 忘了return } void main() { foo(); // 但没有用到foo的返回值。 }
原来以为没用到返回值的话不return也无所谓。
不知道标准有没有对此做什么规定?
--
FROM 58.33.198.*
1楼
|
poikilotherm
|
2021-06-16 12:35:20
|
只看此ID
这能编译通过?
【 在 Madlee (无竹居士) 的大作中提到: 】
: 我的一个一个函数,忘了return,但这个返回值没用。gcc O3优化直接挂了
: 有时候 segment fault. 有时候就直接进入一个无限循环。
: 后来加上一个return就一切正常了。
:
--
FROM 223.104.214.*
2楼
|
Madlee
|
2021-06-16 12:36:53
|
只看此ID
warning而已
【 在 poikilotherm 的大作中提到: 】
: 这能编译通过?
--
FROM 58.33.198.*
3楼
|
ble
|
2021-06-16 14:49:52
|
只看此ID
warning is error啊
【 在 Madlee 的大作中提到: 】
: warning而已
:
--
FROM 222.129.48.*
4楼
|
aalbertini
|
2021-06-16 15:21:06
|
只看此ID
有时候 segment fault. 有时候就直接进入一个无限循环。
---- 这个应该和没写return没关系,都没使用返回值。 return就是把值拷贝到栈帧中的返回值所在内存区域。
--
FROM 1.202.147.*
5楼
|
ziqin
|
2021-06-16 15:23:34
|
只看此ID
开了优化基本就是玄学
--
FROM 122.224.174.*
6楼
|
z16166
|
2021-06-16 16:07:26
|
只看此ID
看优化后的汇编代码
--
FROM 221.222.172.*
7楼
|
Madlee
|
2021-06-16 16:10:05
|
只看此ID
算了,bug已经改了就懒得折腾了。就是纯好奇问问。
【 在 z16166 的大作中提到: 】
: 看优化后的汇编代码
--
FROM 58.33.198.*
8楼
|
Madlee
|
2021-06-16 16:10:40
|
只看此ID
嗯,估计是优化的问题,不优化就没问题。
【 在 ziqin 的大作中提到: 】
: 开了优化基本就是玄学
--
FROM 58.33.198.*
9楼
|
z16166
|
2021-06-16 16:20:01
|
只看此ID
不求甚解,哈哈
优化也不会改变语义
【 在 Madlee 的大作中提到: 】
: 算了,bug已经改了就懒得折腾了。就是纯好奇问问。
:
--
修改:z16166 FROM 221.222.172.*
FROM 221.222.172.*
下页
|
尾页
|
1/3
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版