码迷,mamicode.com
首页 > 其他好文 > 详细

defined(__alpha)是什么意思?

时间:2015-04-14 16:22:45      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

在代码中看到了#defined(__alpha),后面跟着一些系统设置,不明白__alpha这个宏代表什么。

上网搜了一圈,竟然没找到确切的说明。

后来,发现在2000年一个叫M.L.Y的人写了一个小程序,根据预定义的宏来判断运行环境。仔细一看,原来__alpha是DEC公司出的微处理器。

维基百科上的说明如下:

DEC Alpha

维基百科,自由的百科全书
 
技术分享
 
DEC Alpha AXP 21064 Microprocessor

Alpha,也称为Alpha AXP,是由迪吉多公司开发的64位RISC指令集架构微处理器。最初由DEC公司制造,并被用于DEC自己的工作站服务器中。作为VAX的后续被开发,支援VMS操作系统,如Digital UNIX。不久之后开放源代码的操作系统也可以在其上运行,如LinuxBSDMicrosoft Windows支持这款处理器,直到Windows NT 4.0 SP6,但是从Windows 2000 beta3开始放弃了对Alpha的支援。

1998年,随着DEC被一起卖给康柏。2001年,被康柏卖给Intel。同年,惠普收购康柏,继续开发基于Alpha处理器的产品到2004年。

原来如此。随着时间的推移,这些已经消失的硬件,也淡出了人们的视野了。

下面是M.L.Y写的小程序,遇到不认识的宏,可以来找找看。

/* 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 */ 


defined(__alpha)是什么意思?

标签:

原文地址:http://www.cnblogs.com/sirlipeng/p/4424916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!