__FUNCTION__

导读:

  


paste   from   MSDN  
  notice:   may   be   include   "stdio.h"  
   
  C/C++   Preprocessor   Reference        
   
  Predefined   MacrosSee   Also  
  Macros   |   Preprocessor   Operators   |   Preprocessor   Directives  

  The   compiler   recognizes   10   predefined   ANSI   C   macros,  
and   the   Microsoft   C++   implementation   provides   several  
more.   These   macros   take   no   arguments   and   cannot   be  
redefined.   Their   value,   except   for   __LINE__   and   __FILE__,
  must   be   constant   throughout   compilation.   Some   of   the  
predefined   macros   listed   below   are   defined   with   multiple
  values.   See   the   following   tables   for   more   information.
 
   
  ANSI-Compliant   Predefined   Macros  
   
  Macro   Description    

  __DATE__   The   compilation   date   of   the   current   source  
file.   The   date   is   a   string   literal   of   the   form   Mmm
  dd   yyyy.   The   month   name   Mmm   is   the   same   as   for  
dates   generated   by   the   library   function   asctime   declared
  in   TIME.H.      
  __FILE__   The   name   of   the   current
  source   file.   __FILE__   expands   to   a   string   surrounded  
by   double   quotation   marks.    
  You   can   create   your   own   wide   string   version   of   __FILE__   as   follows:  
   
  #include    
  #define   WIDEN2(x)   L   ##   x  
  #define   WIDEN(x)   WIDEN2(x)  
  #define   __WFILE__   WIDEN(__FILE__)  
  wchar_t   *pwsz   =   __WFILE__;  
   
  void   main()  
  {  
  }  
     

  __LINE__   The   line   number   in   the   current   source   file.
  The   line   number   is   a   decimal   integer   constant.   It  
can   be   altered   with   a   #line   directive.      
 
__STDC__   Indicates   full   conformance   with   the   ANSI   C  
standard.   Defined   as   the   integer   constant   1   only   if  
the   /Za   compiler   option   is   given   and   you   are   not  
compiling   C++   code;   otherwise   is   undefined.      
 
__TIME__   The   most   recent   compilation   time   of   the  
current   source   file.   The   time   is   a   string   literal   of
  the   form   hh:mm:ss.      
  __TIMESTAMP__   The   date   and
  time   of   the   last   modification   of   the   current   source  
file,   expressed   as   a   string   literal   in   the   form   Ddd  
Mmm   Date   hh:mm:ss   yyyy,   where   Ddd   is   the   abbreviated  
day   of   the   week   and   Date   is   an   integer   from   1   to
  31.    
   
  Microsoft-Specific   Predefined   Macros  
   
  Macro   Description    
  _ATL_VER   Defines   the   ATL   version.    
  _CHAR_UNSIGNED   Default   char   type   is   unsigned.   Defined   when   /J   is   specified.      

  __COUNTER__   Expands   to   an   integer   starting   with   0   and
  incrementing   by   1   every   time   it   is   used   in   a  
compiland.   __COUNTER__   remembers   its   state   when   using  
precompiled   headers.   If   the   last   __COUNTER__   value   was  
4   after   building   a   precompiled   header   (PCH),   it   will  
start   with   5   on   each   PCH   use.    
  __COUNTER__  
lets   you   generate   unique   variable   names.   You   can   use  
token   pasting   with   a   prefix   to   make   a   unique   name.  
For   example:  
   
  #include    
  #define   FUNC2(x,y)   x##y  
  #define   FUNC1(x,y)   FUNC2(x,y)  
  #define   FUNC(x)   FUNC1(x,__COUNTER__)  
   
  int   FUNC(my_unique_prefix);  
  int   FUNC(my_unique_prefix);  
   
  void   main()   {  
        my_unique_prefix0   =   0;  
        printf("/n%d",my_unique_prefix0);  
        my_unique_prefix0++;  
        printf("/n%d",my_unique_prefix0);  
  }  
     
  __cplusplus   Defined   for   C++   programs   only.    
  _CPPRTTI   Defined   for   code   compiled   with   /GR   (Enable   Run-Time   Type   Information).    
  _CPPUNWIND   Defined   for   code   compiled   with   /GX   (Enable   Exception   Handling).    
  _DEBUG   Defined   when   compiling   with   /LDd,   /MDd,   /MLd,   and   /MTd.    
  _DLL   Defined   when   /MD   or   /MDd   (Multithread   DLL)   is   specified.    

  __FUNCDNAME__   Valid   only   within   a   function   and   returns
  the   decorated   name   of   the   enclosing   function   (as   a  
string).   __FUNCDNAME__   is   not   expanded   if   you   use   the  
/EP   or   /P   compiler   option.    
  __FUNCSIG__   Valid  
only   within   a   function   and   returns   the   signature   of  
the   enclosing   function   (as   a   string).   __FUNCSIG__   is  
not   expanded   if   you   use   the   /EP   or   /P   compiler  
option.    
  __FUNCTION__   Valid   only   within   a   function
  and   returns   the   undecorated   name   of   the   enclosing  
function   (as   a   string).   __FUNCTION__   is   not   expanded   if
  you   use   the   /EP   or   /P   compiler   option.    
 
_M_ALPHA   Defined   for   DEC   ALPHA   platforms.   It   is   defined
  as   1   by   the   ALPHA   compiler,   and   it   is   not   defined
  if   another   compiler   is   used.    
  _M_IX86   Defined   for   x86   processors.   See   Values   for   _M_IX86   for   more   details.    
  _M_IA64   Defined   for   64-bit   processors.    
  _M_MPPC   Defined   for   Power   Macintosh   platforms   (no   longer   supported).    
  _M_MRX000   Defined   for   MIPS   platforms   (no   longer   supported).    
  _M_PPC   Defined   for   PowerPC   platforms   (no   longer   supported).    
  _MANAGED   Defined   to   be   1   when   /clr   is   specified.    
  _MFC_VER   Defines   the   MFC   version.   For   example,   0x0700   represents   MFC   version   7.    

  _MSC_EXTENSIONS   This   macro   is   defined   when   compiling  
with   the   /Ze   compiler   option   (the   default).   Its   value,
  when   defined,   is   1.    
  _MSC_VER   Defines   the  
major   and   minor   versions   of   the   compiler.   For   example,
  1300   for   Microsoft   Visual   C++   .NET.   1300   represents  
version   13   and   no   point   release.   This   represents   the  
fact   that   there   have   been   a   total   of   13   releases   of
  the   compiler.    
  If   you   type   cl   /?   at   the  
command   line,   you   will   see   the   full   version   for   the  
compiler   you   are   using.  
     
  __MSVC_RUNTIME_CHECKS   Defined   when   one   of   the   /RTC   compiler   options   is   specified.    

  _MT   Defined   when   /MD   or   /MDd   (Multithreaded   DLL)   or  
/MT   or   /MTd   (Multithreaded)   is   specified.      
 
_WCHAR_T_DEFINED   Defined   when   wchar_t   is   defined.  
Typically,   wchar_t   is   defined   when   you   use   /Zc:wchar_t  
or   when   typedef   unsigned   short   wchar_t;   is   executed   in
  code.    
  _WIN32   Defined   for   applications   for   Win32   and   Win64.   Always   defined.      
  _WIN32   Defined   for   applications   for   Win64.    
  _Wp64   Defined   when   specifying   /Wp64.    
   

  As   shown   in   following   table,   the   compiler   generates   a
  value   for   the   preprocessor   identifiers   that   reflect   the
  processor   option   specified.  
   
  Values   for   _M_IX86  
   
  Option   in   Development   Environment   Command-Line   Option   Resulting   Value    

  Blend   /GB   _M_IX86   =   600   (Default.   Future   compilers  
will   emit   a   different   value   to   reflect   the   dominant  
processor.)    
  Pentium   /G5   _M_IX86   =   500    
  Pentium   Pro,   Pentium   II,   and   Pentium   III   /G6   _M_IX86   =   600    
  80386   /G3   _M_IX86   =   300    
  80486   /G4   _M_IX86   =   400
本文转自

http://topic.csdn.net/t/20021217/16/1269818.html

你可能感兴趣的:(function,Integer,compiler,macros,compilation,preprocessor)