C언어 메인함수 선언할때

int main(void)
{
      ~~~
      ~~~
    return 0;
}

할때 리턴0 을 뭐라고 설명해??

나 면접가야되는데 이거 물어보면 어떻게 답해야할지 모르겠다 ㅠ

추가적으로

void main(void)
{
}

이것도 왜 void로 선언하는지 물어보면 어쩌지??