В программе на C/C++, если функция main() выполняет все свои команды шаг за шагом без ошибок, то в конце она достигнет return 0; Если он достигает return 0,компилятор воспринимает это как успешное выполнение. Идеальной практикой является создание функции main() с возвратом 0.

Если мы объявим функцию main() следующим образом:

void main(){
// все действия для выполнения
}

то нам не нужно ничего возвращать. Но это не очень хорошая практика, потому что таким образом компилятор не может отследить безупречное выполнение. Вы можете использовать void main(), если вы слишком уверены в обработке ошибок/исключений. Но в некоторых случаях могут возникнуть проблемы, некоторые компиляторы не поддерживают void main();