/* * _atexit.h — внутренний стек atexit-хендлеров, общий для atexit() и * exit(). НЕ публичный заголовок; данные живут в _atexit_state.c. */ #ifndef _ATEXIT_INTERNAL_H #define _ATEXIT_INTERNAL_H #define ATEXIT_MAX 8 extern void (*_atexit_stack[ATEXIT_MAX])(void); extern int _atexit_top; /* Разматыватель цепочки (LIFO) — общее тело exit() и возврата из main. */ void _atexit_run(void); /* Указатель на него для crt0; ставит atexit() при первой регистрации. * Подробности и мотивация косвенности — в шапке _atexit_hook.c. */ extern void (*_atexit_hook)(void); #endif