home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / libsrc / c / sys / ctordtor.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-16  |  552 b   |  32 lines

  1. typedef void (*func)();
  2.  
  3. extern func __go32_first_ctor[];
  4. extern func __go32_last_ctor[];
  5. extern func __go32_first_dtor[];
  6. extern func __go32_last_dtor[];
  7.  
  8. static do_ctors()
  9. {
  10.   func *ctor;
  11.   for (ctor=__go32_last_ctor-1; ctor >= __go32_first_ctor; ctor--)
  12.     (*ctor)();
  13. }
  14.  
  15. static do_dtors()
  16. {
  17.   func *dtor;
  18.   for (dtor = __go32_first_dtor; dtor < __go32_last_dtor; dtor++)
  19.     (*dtor)();
  20. }
  21.  
  22. __main()
  23. {
  24.   static int main_called = 0;
  25.   if (main_called)
  26.     return;
  27.   main_called = 1;
  28.  
  29.   do_ctors();
  30.   atexit(do_dtors);
  31. }
  32.