void main(void)と
int main(void)の使い方の違いを教えて下さい

main関数はint型で戻り値が0かどうかで正常かエラーか判断するから
int main(void)の方が使い方としては正しいみたいだけどじゃあなぜ
void main(void)なんて教えたりするんでしょう?
return 0;を省略できるからでしょうか?