Tout programme doit contenir la définition d'une fonction de nom main ; l'exécution du programme commence par cette fonction. Elle 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.