c语言关于return的疑惑

想问一下,为什么图一没有return ret;也能得到正确的返回值?

img

img

没有return,语法上是错误的。但函数声明的是: int max(int a,int b)
这是让dev带的编译器忽略了这个错误,默认地返回了 int 值。

但如果声明成:
void max(int a,int b)
{
int ret;
if(a>b){
ret=a;
}else{
ret=b;
}
}

就不行了!!!

图一是错的哦,不行的🙈🙈🙈