CE认证费用:预处理器指令 (合集)

日期:2017-12-26 / 人气: / 来源:原创

       编译器遇到此命令时停止编译,并将参数message输出。该命令常用于程序调试。

#line:

       格式为:#line line_number

"filename":

       用于改变变量__LINE__和__FILE__的值。filename是可选的。变量__LINE__和__FILE__分别表示当前正在处理的行和文件名。

#line:

       #line 10 "main.cpp"                
       将当前的行改为10,当前文件改为"main.cpp"。

#import:

       格式为:#import "filename" [attributes]或#import <filename> [attributes]。
       用于获得类型库中的信息,类型库中的内容被转换为C++类。主要用来描述COM接口。
       参数filename:描述需要导入的类型库,可以为以下几种:
       1.包含类型库的文件名,如.olb .tlb .dll文件。关键字file:后面加文件名。
       2.类型库中一个control的progid。关键字progid:后面加具体的progid,例如:
              #import "progid:my.prog.id.1.5"
       3.类型库中的库ID。关键字libid:后面跟库的ID,例如:
              #import "libid:12341234-1234-1234-1234-123412341234" version("4.0") lcid("9")
              参数attributes:一个或多个导入属性。中间用空格或逗号隔开,例如:
              #import "..\drawctl\drawctl.tlb" no_namespace, raw_interfaces_only
              或
              #import "..\drawctl\drawctl.tlb" no_namespace raw_interfaces_only

NULL指令

       NULL指令就是一个#符号单独在一行上。它不产生影响。

#using:

       格式为:#using file [as_friend]。
       用于向使用CLR(公共语言运行时)的程序中导入元数据。

       file:一个MSIL的.dll .exe .netmodule或.obj文件,例如: 
       #using <MyComponent.dll>
       as_friend:用于指定该文件中的所有类型都是可访问的。
       也可以在编译器选项中设置/FU(Force #using)来代替在代码中使用#using。

---------------------------------------------------------------------------------------------------------------------------------------------------------

处理器的预定义宏大全

转自 

符合ANSI的预定义宏:

       __DATE__:表示当前源文件编译时的日期,格式为:月/天/年(Mmm dd yyyy)。
       __FILE__:表示当前正在处理的源文件名称。
       __LINE__:表示当前正在处理的源文件的行,可以用#line指令修改。
       __STDC__:表示是ANSI C标准。只有在编译器选项指定了/Za,并且不是编译C++程序时,被定义为常整数1;否则未定义。
       __TIME__:表示当前源文件的最近编译时的时间,格式为:小时/分/秒(hh:mm:ss)。
       __TIMESTAMP__:表示当前源文件的最近修改日期和时间,格式为:Ddd Mmm dd hh:mm:ss yyyy,其中Ddd是星期的缩写。

Microsoft相关的宏:

       _ATL_VER:定义了ATL的版本。
       _CHAR_UNSIGNED:设置默认的char类型是unsigned的。只有在编译器选项/J指定时才有定义。
       __CLR_VER:指定了应用程序编译时的通用语言运行时(CLR)的版本。格式为:Mmmbbbbb,其中M是CLR的主版本,mm是CLR的次版本,bbbbb是build号。
       __cplusplus_cli:只有在用/clr,/clr:pure或/clr:safe编译时才有定义。__cplusplus_cli的值是200406。
       __COUNTER__:为一个整数,从0开始,每出现一次,其值增加1。可以使用__COUNTER__作为前缀来产生唯一的名字。
       __cplusplus:只有在编译C++程序时才有定义,一般用于区分C程序和C++程序。
       _CPPLIB_VER:在程序中如果包含了任意C++标准库头文件,则_CPPLIB_VER有定义。用于显示正在使用的头文件的版本。
       _CPPRTTI:用于标识编译器是否指定了RTTI。如果编译器选项中设定了/GR(打开运行时类型信息机制-RTTI),则_CPPRTTI有定义。
       _CPPUNWIND:用于标识编译器是否打开异常处理。如果编译器选项中设定了/GX,则_CPPRTTI有定义。
       _DEBUG:用于标识是Debug模式。在编译器指定了/LDd,/MDd或/MTd时才有定义。
       _DLL:当编译器选项指定了/MD或/MDd(Multithread DLL)时才有定义。
       __FUNCDNAME__:只有在函数内部才有效。返回该函数经编译器修饰后的名字。如果编译器选项中设定了/EP或/P,则__FUNCDNAME__是未定义。
       __FUNCSIG__:只有在函数内部才有效,并且返回该函数的签名。一个函数的签名由函数名、参数列表、返回类型、内含的命名空间组成。如果它是一个成员函数,它的类名和const/volatile限定符也将是签名的一部分。在64位操作系统中,__cdecl是默认的函数调用方式。如果编译器选项中设定了/EP或/P,则__FUNCSIG__是未定义。
       __FUNCTION__:只有在函数内部才有效。返回该函数未经修饰的名字。如果编译器选项中设定了/EP或/P,则__FUNCTION__是未定义。
       _INTEGRAL_MAX_BITS:表示整数类型的最大位数(bits)。
       _M_ALPHA:为DEC ALPHA平台定义。(现在已不支持)
       _M_CEE:当使用/clr的任意形式(/clr:oldSyntax, 例如/clr:safe)编译时被定义。
       _M_CEE_PURE:当使用/clr:pure编译时被定义。
       _M_CEE_SAFE:当使用/clr:safe编译时被定义。
       _M_IX86:为x86处理器架构定义。当值为300时说明是80386,值是400时说明是80486
       _M_IA64:为Itanium处理器家族的64位处理器(IA64)架构定义。
       _M_IX86_FP:表示编译器选项/arch的值。0:/arch未指定;1:指定/arch:SSE;2:指定/arch:SSE2
       _M_MPPC:为Power Macintosh平台定义。(现在已不支持)
       _M_MRX000:为MIPS平台定义。(现在已不支持)
       _M_PPC:为PowerPC平台定义。(现在已不支持)
       _M_X64:为x64处理器架构定义。 
       _MANAGED:当编译器选项指定/clr时定义,其值为1。
       _MFC_VER:指定MFC版本。例如:0x0700表示MFC version 7。
       _MSC_BUILD:表示编译器版本号的修订号部分。修订号是以时期进行分割的版本号的第四部分。例如:如果VC++编译器的版本号是15.00.20706.01,则_MSC_BUILD的值为1。
       _MSC_EXTENSIONS:当指定编译器选项/Ze(默认)时有定义,其值为1。
       _MSC_FULL_VER:表示编译器的主,次版本号及build号。主版本号是整个版本号的第一部分,次版本号是整个版本号的第二部分,CE认证是什么,build号是整个版本号的第三部分。例如: 如果VC++编译器的版本号是15.00.20706.01,则_MSC_FULL_VER的值为150020706。可以在命令行键入cl /?来查看编译器的版本号。
       _MSC_VER:表示编译器的主,次版本号。例如: 如果VC++编译器的版本号是15.00.20706.01,则_MSC_VER的值为1500。
       __MSVC_RUNTIME_CHECKS:当指定编译器选项/RTC之一(/RTCs或/RTCu或/RTC1)时有定义。
       _MT:当指定编译器选项/MD或/MDd(Multithreaded DLL)或/MT或/MTd(Multithreaded)时有定义。
       _NATIVE_WCHAR_T_DEFINED:当指定编译器选项/Zc:wchar_t(将wchar_t视为内置类型)时有定义。
       _OPENMP:当指定编译器选项/openmp时有定义,返回一个表示Visual C++中的OpenMP的日期的整数。
       _VC_NODEFAULTLIB:当指定编译器选项/Zl(忽略默认库名)时有定义。
       _WCHAR_T_DEFINED:当指定编译器选项/Zc:wchar_t或工程中包含的系统头文件中定义了wchar_t时有定义。
       WIN32:为Win32和Win64应用程序定义。总有定义。
       _WIN64:为Win64应用程序定义。
       _Wp64:当指定编译器选项/Wp64时有定义。

--------------------------------------------------------------------------------------------------------------------------------------

#pragma预处理指令详解

转自 

作者:PTC


马上致电 021-68061963 OR 查看更多联系方式 →

Go To Top 回顶部