现在的位置: 首页 > 综合 > 正文

几个宏定义

2013年10月17日 ⁄ 综合 ⁄ 共 1100字 ⁄ 字号 评论关闭

ANSIC的6个预定义宏(所有编译器必须识别) 

    ANSIC标准定义了以下6种可供C语言使用的预定义宏:   
          __LINE__                       在源代码中插入当前源代码行号   
          __FILE__                       在源代码中插入当前源代码文件名   
          __DATE__                       在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕   
          __TIME__                       在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕         
          __STDC__                       指示系统是否含有服从标准(ANSI-compliant)的头文件(以及可能的C库函数)  
          __cplusplus  

    
      标识符__LINE__和__FILE__通常用来调试程序;标识符__DATE__和__TIME__通常用来在编译后的程序中加入一个时间标志,以区分程序的不同版本;当要求程序严格遵循ANSIC标准时,标识符__STDC__就会被赋值为1;当用C++编译程序编译时,标识符__cplusplus就会被定义。  

     在你写dll的时候,因为对于C和C++,编译器会有不同的名字解析规则,所以可以这样用   
            #ifndef   __STDC__    
                 extern"C"   void   function();   

            #else   
                 void   function();   
           #endif

 

 

MFC下:

    _DEBUG

        支持诊断调试功能,在你的编译器定义了_DEBUG时发生作用;分开debug模式和release模式;如果编译器看到了你定义_DEBUG和没定义,编译的程序是不一样的;在Release 定义的是NDEBUG.

 

    WIN32

       故名思议,用来区别不同操作系统(开发环境)。_MAC苹果机,WIN32 PC机

 

 

   顺便讲一下,windows下开发几个头文件的引用关系。

        windows.h:包括大部分的Win32 API函数,以及一些Win32宏。只用sdk一般使用

        afxwin.h:会调用windows.h,是MFC编程的途径,只要用到MFC就一定要包含它。包含AfxWin.h之后不需要包含windows.h。如果包含了就要注意顺序。

抱歉!评论已关闭.