Con la familia GCC de compiladores C, podemos marcar algunas funciones para que se ejecuten antes y después de main(). Por lo tanto, se puede ejecutar un código de inicio antes de que se inicie main(), y un código de limpieza se puede ejecutar después de que finalice main(). Por ejemplo, en el siguiente programa, myStartupFun() se llama antes de main() y myCleanupFun() se llama después de main().
#include<stdio.h> /* Apply the constructor attribute to myStartupFun() so that it is executed before main() */ void myStartupFun (void) __attribute__ ((constructor)); /* Apply the destructor attribute to myCleanupFun() so that it is executed after main() */ void myCleanupFun (void) __attribute__ ((destructor)); /* implementation of myStartupFun */ void myStartupFun (void) { printf ("startup code before main()\n"); } /* implementation of myCleanupFun */ void myCleanupFun (void) { printf ("cleanup code after main()\n"); } int main (void) { printf ("hello\n"); return 0; }
Producción:
startup code before main() hello cleanup code after main()
Al igual que la característica anterior, GCC ha agregado muchas otras características interesantes al lenguaje C estándar. Vea esto para más detalles.
Artículo relacionado:
Ejecución de main() en C – detrás de escena
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA