#include void _initterm(void (*fStart[])(void), void (*fEnd[])(void)) { int i = 0; if ( fStart == NULL || fEnd == NULL ) return; while ( &fStart[i] < fEnd ) { if ( fStart[i] != NULL ) (*fStart[i])(); i++; } } typedef int (* _onexit_t)(void); _onexit_t __dllonexit(_onexit_t func, void (** fStart[])(void), void (** fEnd[])(void)) { } _onexit_t _onexit(_onexit_t x) { return x; }