C语言函数返回值没return能返回吗

这段程序没有指针没有return,为什么返回了main函数,改变了函数值?
#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d%d",&a,&b);
a=max(a,b);
printf("%d %d",a,b);
return 0;
}
int max(int x,int y)
{
int b;
b=(x>y?x:y);
}

没有返回值,你可以随便返回一个值,一般返回0

如果没有返回值就定义为void
void main(){

}
一般情况下定义为int
int main(){

return 0;
}

你这啥编译器呢,max函数没有return居然能通过编译

应该是你的编译器有容错机制,自动返回了b