上海到长沙汽车:有返回值的函数未提供返回值,会如何?
来源:百度文库 编辑:中科新闻网 时间:2024/05/13 16:27:29
int a()
{
}
本来要有一个返回值的,但现在不给,也能编译通过,但会有警告,如果就这样用的话,会有什么影响,计算机内部可能会产生什么问题呢?
{
}
本来要有一个返回值的,但现在不给,也能编译通过,但会有警告,如果就这样用的话,会有什么影响,计算机内部可能会产生什么问题呢?
系统会给他设置一个值作为返回值,通常是最后执行语句的结果。还有就是编译可能有Warning,其他应该没什么了。
本人没有用过G++(Linux),谈的是VC++结果,若其他编译器结果不同(MinGW,XL C++,G++等),恳请指正。
VC.NET不让通过.
其实函数在返回时是向CPU的EAX和EDX(返回64位数据类型时才用到EDX)赋值,再跟没有返回值的函数一样返回到调用的程序段处.
你这样只是不向EAX和EDX赋值,返回后程序还是要读取EAX和EDX,到时候就要看EAX和EDX是什么值了.
vc++6.0 通不过,我的编译器是这样,不知道别人的怎么样。
但是为什么要这样写呢,这不是自找麻烦么?
如果你调用这个函数的时候需要用到这个返回值的时候
例如:printf("%d",a());
它会给你一个未指定的值
就象一个指针没指向任何一个地址一样
如果你不需要这个返回值的时候就没有必要返回,这时候系统会随机给它分配一个值,没有什么影响。
编译可以通过,但不一定会有结果