Directives particulières #pragma

Les directives #pragma sont spécifiques à un compilateur particulier. Lorsque la directive est inconnue au compilateur courant, il l’ignore. Nous ne donnons ici que les principales directives de ce type de Turbo C++.

Placée avant une fonction, la directive :

#pragma argsused

invalide le message Warning : Parameter 'xxx' is never used, le paramètre 'xxx' n’est jamais utilisé. Elle ne vaut que pour la fonction qui la suit, mais peut être répétée.

La directive :

#pragma startup fonction [priorité]

indique au compilateur d’exécuter la fonction de démarrage fonction avant main. Il doit s’agir d’une fonction sans paramètre et sans résultat : void fonction(void). Le numéro de priorité qui suit est facultatif, sa valeur par défaut est 100. Les fonctions de démarrage sont lancées dans l’ordre du plus petit numéro de priorité au plus grand ; ces numéros doivent se trouver entre 64 et 255, les valeurs 0 à 63 étant réservées aux librairies standard.

De manière similaire, la directive :

#pragma exit fonction [priorité]

indique au compilateur d’exécuter la fonction de sortie fonction après la fin du programme ; il doit aussi s’agir d’une fonction sans paramètre et sans résultat. Le sens du numéro de priorité est identique. Les fonctions de sortie ne sont pas exécutées si le programme est interrompu par _exit ou abort, mais elles le sont s’il est interrompu par exit ou en cas de terminaison normale (fin de main).

Précédent Précédent Sommaire Sommaire Suivant Suivant