[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 编程技术 > 源码天堂 > 正文

C源码:可以检测 10 种 C 语言编译环境的程序

来源:本文出自:http://mly363.363.net 作者: (2001-08-22 16:33:51)

/* CCOS.C --- Test the C language compiler and OS by predefined symbols */
/* M.L.Y  2000.12 */

#include <stdio.h>

int  main()
{
#if defined(MSDOS) & defined(_MSC_VER)           /* Microsoft C */
  printf("It is MS-DOS, Microsoft C.\n");
#endif
#if defined(__MSDOS__) &                         /* Turbo C/BC */    \
   (defined(__TURBOC__) | defined(__BORLANDC__))
  printf("It is MS-DOS, Borland Turbo C / Borland C++.\n");
#endif
#if __hppa & __hp3000s900 & __mpexl              /* HP 3000 */
  printf("It is HP 3000, MPE/iX, HP C/iX.\n");
#endif
#if vax & VAX & vms & VMS                        /* DEC VAX */       \
  & vaxc & VAXC & vax11c & VAX11C                                    \
  & defined(vms_version) & defined(VMS_VERSION)
  printf("It is DEC VAX, VMS, VAX 11 C.\n");
#endif
#if __vms & __VMS                                /* DEC Alpha */     \
  & __vaxc & __VAXC & __vax11c & __VAX11C                            \
  & __DECC & defined(__vms_version) & defined(__VMS_VERSION)         \
  & __Alpha_AXP & __Alpha & __ALPHA & __32BITS
  printf("It is DEC Alpha AXP, Open VMS, DEC C.\n");
#endif
#if __OS400__                                    /* AS/400 */
  printf("It is AS/400, OS/400.\n");
#endif
#if mips & __mips & host_mips & __host_mips      /* Tandem */        \
  & unix & __unix & __nonstopux                                      \
  & SYSTYPE_SVR4 & _SYSTYPE_SVR4 & LANGUAGE_C & _LANGUAGE_C
  printf("It is Tandem(puma S4000 mips,...), NonStop-UX/V(Rel4.2MP,...).\n");
#endif
#if (hp9000s200 | hp9000s300 | __hp9000s300      /* HP 9000 */       \
   | hp9000s500 | hp9000s800 | __hp9000s800 | hp9000ipc)             \
   & (hppa | __hppa) & (_PA_RISC1_0 | _PA_RISC1_1)                   \
   & (unix | __unix) & (hpux | __hpux)
  printf("It is HP 9000, HP-UX.\n");
#endif
#if i386 & M_I386 & unix & __unix & M_UNIX       /* SCO UNIX */      \
  & (_SCO_COFF | _SCO_ELF)
  printf("It is SCO UNIX(SCO OpenServer) on Intel 386 or above.\n");
#endif
#if i386 & _I386 & unix & __HIGHC__ & _ATT4      /* NCR UNIX */
  printf("It is NCR MP-RAS SVR4 UNIX System on Intel 386 or above.\n");
#endif
  return 0;
}

/* End of file */

(http://www.fanqiang.com)



 
 相关文章

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com