Cette fonction permet de communiquer avec le système d'exploitation. Dans sa forme la plus simple, c'est une fonction sans argument, qui retourne un int ; sa définition minimale est la suivante :
int main() { return 0; }
L'entier retourné communique à l'interprète de commandes (sous Unix, le shell ) le statut d'exécution du programme ; par convention, cet entier est 0 si le programme s'est exécuté sans erreur. Par conséquent, toute fonction main doit se terminer par return 0.
On verra plus loin comment utiliser main pour donner des arguments en entrée à un programme.