Envoyé par
nicolas.sitbon
Du point de vue de l'appelé (en l'occurrence main ici), elles sont identiques.
En revanche du point de vue de l'appelant, il y a une différence qui selon moi justifie de ne jamais utiliser la seconde : si on met explicitement void, comme dit plus, il n'est pas possible d'appeler main ainsi : main(1) car on viole une contrainte. Si au contraire, on laisse les parenthèses vides (), le fait d'appeler main ainsi main(1) ne viole aucune contrainte mais induit un comportement indéterminé.
En conclusion, afin d'éviter tout comportement indéterminé, la forme main() ne doit pas être utiliser (que ce soit pour main ou tout autre fonction ne recevant pas d'argument).