Main è considerata la funzione base sia dal codice C/C++ che dal compilatore stesso.
Deve essere preceduta dal tipo, come per tutte le altre funzioni (int,char,void,etc).
L'utilizzo di questa funzione non è necessario in nessun caso, ma è consigliato per programmi che non richiedono l'utilizzo di altre funzioni che potrebbero sostituirla (soprattutto se sei all'inizio, usala come funzione principale).
Per quanto ne so di void main, non è assolutamente illecito il suo uso, poi magari varia da compilatore a compilatore, ti basta solo provare.
NB. dire void main implica il fatto che la funzione non ritorni alcun valore, quindi alla fine di essa non ci deve essere alcun return.
![]()