home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_C / SNPD9404.ZIP / COMPILER.C < prev    next >
C/C++ Source or Header  |  1994-04-03  |  1KB  |  47 lines

  1. /*
  2. **  Tests for popular PC compilers and versions
  3. */
  4.  
  5. #include <stdio.h>
  6.  
  7. void main(void)         /* Actually, void main() is non-ANSI/ISO  */
  8. {
  9.       int version;
  10.  
  11. #if defined(__ZTC__)
  12.  #ifdef __SC__
  13.       printf("Symantec C++ ver. %x.%x\n", __SC__ >> 8, __SC__ & 0xff);
  14.  #else
  15.       printf("Zortech C++ ver. %x.%xr%x\n",
  16.             __ZTC__ >> 8, (__ZTC__ >> 4) & 0xf, __ZTC__ & 0xf);
  17.  #endif
  18. #elif defined(__WATCOMC__)
  19.       printf("Watcom C/C++ ver. %d.%d\n",
  20.             __WATCOMC__ / 100, __WATCOMC__ % 100);
  21. #elif defined(__TURBOC__)
  22.       version = __TURBOC__;
  23.       if (0x295 > version)
  24.       {
  25.             printf("Borland Turbo C ver. %x.%02x\n",
  26.                   version >> 8, version & 0xff);
  27.       }
  28.       else if (0x400 <= version)
  29.       {
  30.             printf("Borland C++ ver. %x.%x\n",
  31.                   (version >> 8) - 1, (version & 0xff) >> 4);
  32.       }
  33.       else if (0x297 > version)
  34.             printf("Borland Turbo C++ ver. 1.%02x\n", version - 0x295);
  35.       else  printf("Borland C++ ver. 2.%02x\n", version - 0x297);
  36. #elif defined(_QC)
  37.       printf("Microsoft Quick C ver. %d.%d\n", _QC / 100, _QC % 100);
  38. #elif defined(_MSC_VER)
  39.       printf("Microsoft C(/C++) ver. %d.%d\n",
  40.             _MSC_VER / 100, _MSC_VER % 100);
  41. #elif defined(__POWERC)
  42.       printf ("MIX Power C ver. %d\n", __POWERC);
  43. #else
  44.       puts("Unknown compiler!");
  45. #endif
  46. }
  47.