paramètres du programme principal

Le programme principal (fonction main) peut avoir des paramètres.

Les paramètres sont transmis à la fonction main lorsque le programme est appelé à partir du langage de commande du système d’exploitation.

Les arguments (nom donné aux paramètres effectifs pour un langage de commande) apparaissent sur la ligne de commande après le nom du fichier exécutable (nom de la commande).

Exemple (la commande cp qui permet de copier un fichier)

cp ancien nouveau

La fonction main a donc deux paramètres :

  • argc, un entier qui donne le nombre le nombre d’arguments de la ligne de commande, le nom de la commande est comptabilisé parmi les arguments ; argv : un pointeur vers un tableau de chaînes de caractères correspondant à chaque argument.

Le nom de la commande est donné par argv[0], alors que argv[1], argv[2], … argv[argc-1] donnent les vrais paramètres de la fonction main.

Si argc ==1, alors la commande n’a pas d’arguments et la fonction main n’a pas de paramètres (void).

Retour sur l’exemple de la commande cp.

On a argc égal à 3.argv[0] égal à « cp » argv[1] égal à « ancien » argv[2] égal à « nouveau » Schéma page 110

Exemple : Ecrire un programme qui imprime les arguments qui lui sont transmis sur la ligne de commande. Les chaines sont séparées par le caractère blanc et on termine par le caractère de fin de ligne.

main (int argc, char* argv []) {

int i ;

for (i=1 ; i < argc, i++)

printf (“%s %c”, argv[i], (i <argc-1) ?’ ‘ : ‘/n’) ;

}

Dans la signature de la fonction on peut remplacer char * argv[] par char **argv, car argv est un pointeur qui pointe sur un pointeur de caractère.

main (int argc ; char **argv )

Ecrire un programme principal qui affiche, pour les nombres 2 et -3, les différentes valeurs obtenues en élevant successivement ces deux nombres à toutes les puissances de 0 à 9.

Dans un premier temps, vous utilisez une fonction puissance. Dans un deuxième temps, vous essayez d’optimiser le nombre d’opérations arithmétiques.

» Glossaire du langage C