extern void (*_ctors_start[0])(void), (*_ctors_end[0])(void); extern void (*_dtors_start[0])(void), (*_dtors_end[0])(void); void init (void) { for (void (**ctor)(void) = _ctors_start; ctor != _ctors_end; ctor++) { (*ctor)(); } } void fini (void) { for (void (**dtor)(void) = _dtors_start; dtor != _dtors_end; dtor++) { (*dtor)(); } }