C语⾔中带有返回类型的函数没有return语句的影响⽹上查资料发现C++编译器不允许这种做法,会报编译错误,但是C编译器如GCC⼀般不会报错,但返回的值不确定。
⾃⼰写了简单的代码做了个试验,代码如下:
#include <stdio.h>
int a()
{
// printf("function a called\n");
}
int b()
{
// printf("function b called\n");
}
int main()
{
int a1 = a();
int b1 = b();
printf("a1=%d, b1=%d\n", a1, b1);
}
运⾏结果,当不放开注释时结果如下:
return在c语言中是什么意思当放开注释时结果如下:
当⽅法a放开注释,⽅法b不放开注释时,结果如下:
似乎函数返回的值总是相同的,⽽且范围只在0和1之间。
⼜加了⼀个⽅法c,继续观察结果:
#include <stdio.h>
int a()
{
printf("function a called\n");
}
int b()
{
// printf("function b called\n");
}
int c()
{
/
/int c = 1 + 2;
}
int main()
{
int a1 = a();
int b1 = b();
int c1 = c();
printf("a1=%d, b1=%d, c1=%d\n", a1, b1, c1);
}
编译执⾏结果为:
将a⽅法的内容注释掉,编译执⾏结果为:
似乎规律是只要有⼀个⽅法中有可执⾏的语句,所有⽅法都返回0,如果所有⽅法都是空⽅法(没有语句)就都返回1(⽬前尚不确定其他环境下是否也是相同结论)。
⽬前还不清楚其中的原理,暂时记录实验现象。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论