Visual C++ WinCE设备编译器支持的内在函数和宏

来源:互联网 发布:软件架构有哪些 编辑:程序博客网 时间:2024/05/22 04:34

Visual Studion 2005 支持的设备编译器的内在函数

下面的函数是支持所有设备编译器的公共内在函数:(位于头文件 <cmnintrin.h>)( x86, ARM, SH-4, MIPS )
    __assume : 传递一个提示到优化器。
    _debugbreak : 促使一个调试断点被插入。
    __noop : 忽略函数及其参数。
    _CacheRelease : 将被包含被指针引用地址的高速缓存线写入主存,然后标记高速缓存线为空。
    _CacheWriteBack : 将被包含被指针引用地址的高速缓存线写入主存。
    _CopyFloatFromInt32 : 复制一个整型值到一个浮点型寄存器。
    _CopyInt32FromFloat : 复制一个浮点数到一个整型寄存器。
    _CopyInt64FromDouble : 复制一个浮点双精度到一个长整型寄存器。
    _CopyDoubleFromInt64 : 复制一个浮点双精度长整型到一个长整型寄存器。
    _CountLeadingOnes, _CountLeadingOnes64 :返回从最高有效位的开始的连续 1 位的个数。
    _CountLeadingSigns, _CountLeadingSigns64 : 返回从下一个最高有效位开始的连续的与符号位相符的位个数。
    _CountLeadingZeros, _CountLeadingZeros64 : 返回从最高有效位开始的连续 0 位的个数。
    _CountOneBits, _CountOneBit64 : 返回参数中 1 的位数个数。
    _ICacheRefresh : 从指令高速缓存器释放包含指针引用地址的高速缓存线。
    _isunordered : 比较两个双精度数,确定是否它们是无序的。
    _isunorderedf : 比较两个浮点数,确定是否它们是无序的
    _MulHigh, _MulUnsignedHigh : 返回两个参数相乘的高32位结果。
    _prefetch :如果可能,将数据从主存载入高手缓存。
    _ReadWriteBarrier : 在后续的内存访问开始之前,强制使之前的所有内存访问完成。
    _WriteBarrier : 在后续的写操作开始之前,强制使之前的内存写操作完成。
    _ReturnAddress : 在控制返回调用者之后,提供将被执行的调用函数中指令的地址。
    __trap : 插入一个 trap 指令。
    MulDiv : 将两个32位值相乘后除第三个32位值,返回结果值的最接近整数(四舍五入)。
   
以下宏用于测试设备内在函数:
    _INTRINSIC_IS_HELPER(arg) : 确定指定的内在函数是否是 C 运行时库中的一个调用。
        arg - 相关内在函数的名字。
   
    _INTRINSIC_IS_INLINE(arg) :确定指定的内在函数是否可被编译扩展为一行或多行内联函数。
    _INTRINSIC_IS_SAFE(arg) : 确定指定内在函数是否独立于操作系统。
    _INTRINSIC_IS_SUPPORTED :确定指定内在函数是否被支持。
   
以下为设备编译识别的 ANSI C 和 Microsoft C++ 实现的预定义宏:
ANSI C :
    __DATE__ : 当前源文件的编译日期,字符串格式为 mm dd yyyy 。
    __FILE__ : 当前源文件名,扩展为带双引号的字符串。
    __FUNCTION__ : 封闭函数名,仅在函数内有效。
    __LINE__ : 当前源文件的行数,为十进制常整数,可以被 #line 指令改变。
    __STDC__ : 指示完全符合ANSI C 标准。
    __TIME__ : 当前源文件编译时间,格式为 hh:mm:ss 。
    __TIMESTAMP__ : 源文件最后一次修改的时间戳,格式为 D M dd hh:mm:ss yyyy 。
    (注:以上值,除了 __LINE__ 和 __FILE__ 外,在编译期间必须为常量。
   
MS 定义的宏:
    _CHAR_UNSIGNED : 默认字符类型为无符号的。
    __cplusplus : 仅为 C++ 程序定义。
    _CPPRTTI :为代码编译 /GR(使用运行时类型信息) 定义。
    _CPPUNWIND : 为代码编译 /GX(使用异常处理) 定义。
    _MFC_VER : 定义 MFC 版本。MFC 6.0 或更高版本定义为 0x0600 。
    _MSC_EXTENSIONS : 当以 /Za, /Ze(不使用原有扩展) 编译时定义,默认定义, 值为 1 。
    _MSC_VER : 定义编译器版本,VC++ 6.0 或更高版本定义为 1200 。
    _WIN32 : 为 Win32 应用程序定义,总是定义。


注:以上内容翻译整理来自微软 MSDN

原创粉丝点击