Le code suivant illustre l'utilisation de la fonction atexit avec l'enregistrement d'une fonction pointu. Vous devez lire et essayer. #include #include using namespace std; vide myFn () {cout} void (* myFnPtr) () = myFn; int main () {atexit (myFnPtr); ////déclarations cout déclarations renvoient 0; } Notez l'inclusion de l'en-tête de cstdlib. La fonction pour la touche finale est myFn. Tout cette fonction fait ici est qu'il envoie une sortie à l'affichage. En pratique, il peut sauver quelque chose dans un fichier sur le disque dur.
Après sa définition de l'identifiant, myFnPtr est fait un pointeur vers elle (la fonction). Dans la fonction principale, la première déclaration est un appel à la fonction atexit qui enregistre la fonction de myFn utilisant l'argument, myFnPtr, qui est un pointeur vers myFn. Après cet appel dans la fonction principale, vous avez vos déclarations pour votre code personnalisé jusqu'à ce que votre habitude "return 0;" mettre fin à la principale bloc de fonction. Lire et essayer de nouveau le code.
Notez que la fonction atexit peut encore être appelé implicitement par le C ++ environnement d'exécution pour une autre fonction, inconscient de vous. Comme vu précédemment la fonction atexit retourne un int à son appelant (quel qu'il soit). La fonction de sortie La fonction de sortie provoque la fin du programme normal de se produire. Lorsque la résiliation normale du programme se produit l'se produire en ce qui suit: - Toutes les fonctions enregistrées par la fonction atexit sont appelés, dans l'ordre inverse de leur enregistrement.
- Tous les flux ouverts qui ont des données mises en mémoire tampon non écrites sont vidées (sur le disque), tous les flux ouverts sont fermés, et tous les fichiers temporaires () créés par la fonction tmpfile sont supprimés. La syntaxe de la fonction de sortie est, void exit (statut int); La fonction de sortie ne revient pas à son appelant (en raison de la valeur