Programmation en C :

1. Un programme minimal

code commentaire
int main(void) {
 return 0;
}
Le code principal est contenu dans une fonction main qui retourne une valeur entière (de type int).
Ce code est délimité par des accolades { et }.
N.B. La valeur retournée est utilisée par le système comme code de retour de l'exécution, la valeur de retour 0 indique conventionnellement l'absence de problème. On peut écrire aussi int main(), le terme void étant optionnel.
main() {
 
}
main est ici une procédure.
N.B. On aurait pu écrire aussi void main(void), void main(), ou encore main(void), le mot-clé void correspondant à une absence de paramètres en entrée/sortie d'une procédure ou d'une fonction.
Ceci est valable pour la version1 C89 (dite "ANSI") du langage C, car à partir de la version C99, il faut impérativement indiquer un type de retour de la fonction main : on peut utiliser void main() mais pas main().
Remarque. L'écriture void main(...) pour une procédure correspond à un choix du langage C qui considère une procédure comme une fonction qui ne retourne rien, on peut alors utiliser return seul pour mettre fin à la procédure.
int main(int argc, char** argv) {
 return 0;
}
La fonction main prend ici en entrée deux paramètres, on pourrait la définir algorithmiquement par :
fonction main : (entier argc, liste de chaines argv) → entier.
Ces deux variables sont utilisées quand on exécute un programme en ligne-de-commande :
argc est le nombre d'arguments du programme,
argv est une liste de chaines de caractères, chacune correspondant à un argument de la ligne de commande (il y a donc argc−1 paramètres).
Le premier argument argv[0] est le nom de l'exécutable, les arguments suivants (s'il y en a) sont les paramètres de la ligne de commande.
Remarque. On pourrait utiliser d'autres noms plus parlant que les noms usuels argc et argv, par exemple : main(int nombredarguments, char** listedarguments), ou en anglais : main(int ArgNumber, char** ArgList).
1Le fond coloré du code indique la version pour laquelle sera conçue le programme : C89 ou C99. La version C11 ne sera pas étudiée.