• [转载] Intel C++编译器的预定义宏(Windows版、Linux版)


    转载自:http://www.cnblogs.com/zyl910/archive/2012/07/06/intel_predefined_macros.html

      网上有很多介绍VC与GCC预定义宏的帖子,例如《C\C++宏大全》。

      而对于Intel C++编译器的预定义宏,似乎没人介绍。
      我Google了很久,发现Intel官网上有,但是很奇怪,很多链接都失效了,报告404错误。反复调整搜索关键字,一个一个的尝试链接,最后终于找到了有效的页面了。为了怕以后链接失效,赶紧记录下载。

      该手册的名字是《Intel® C++ Compiler XE 12.1 User and Reference Guides》,分别有Windows版和Linux版——
    Windows:http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/win/index.htm
    Linux:http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/lin/index.htm


    一、Windows版

    1.1 ANSI Standard Predefined Macros(ANSI标准预定义宏)

    http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/win/bldaps_cls/common/bldaps_ansi_macros.htm

    The ANSI/ISO standard for the C language requires that certain predefined macros be supplied with conforming compilers. The following table lists the macros that the Intel® C++ Compiler supplies in accordance with this standard:

    The compiler includes predefined macros in addition to those required by the standard. The default predefined macros differ among Windows*, Linux*, and Mac OS* X operating systems due to the default /Za compiler option on Windows. Differences also exist on Linux OS and Mac OS X as a result of the -std compiler option.

    Macro

    Value

    __DATE__

    The date of compilation as a string literal in the formMmm dd yyyy.

    __FILE__

    A string literal representing the name of the file being compiled.

    __LINE__

    The current line number as a decimal constant.

    __STDC__

    The name __STDC__ is defined when compiling a C translation unit.

    __STDC_HOSTED__

    1

    __TIME__

    The time of compilation as a string literal in the formhh:mm:ss.


    1.2 Additional Predefined Macros(额外的预定义宏)

    http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/win/bldaps_cls/cppug_ccw/bldaps_macros_win.htm

    The Intel® C++ Compiler supports the predefined macros listed in the table below. The compiler also includes predefined macros specified by the ISO/ANSI standard.

    The following table lists the predefined macros on systems based on either the IA-32 or Intel® 64 architecture.

    These labels apply:

    • i32 means that the macro is included on systems based on IA-32 architecture.

    • i64em means that the macro is included on systems based on Intel® 64 architecture.

    Macro Name

    Value

    i32

    i64em

    __cilk

    200; however, if /Qcilk-serialize or /Qintel-extensions- is specified, the value is undefined

    X

    X

    __COUNTER__

    0

    X

    X

    __ECL

    Intel compiler version

    __EDG__

    1

    X

    X

    __EDG_VERSION__

    EDG version

    X

    X

    _export

    no value

    X

    X

    __ICL

    Intel compiler version

    X

    X

    _INC_STDIO

    no value

    X

    X

    _INTEGRAL_MAX_BITS

    64

    X

    X

    __INTEL_COMPILER

    Intel compiler version

    X

    X

    __INTEL_COMPILER_BUILD_DATE

    YYYYMMDD

    X

    X

    __INTEL_MS_COMPAT_LEVEL

    1

    X

    X

    __LONG_DOUBLE_SIZE__

    64

    X

    X

    _M_AMD64

    1

    X

    _M_IX86

    700

    X

    X

    _M_IA64

    64200

    X

    _M_X64

    1

    X

    _MSC_EXTENSIONS

    1

    X

    X

    _MSC_FULL_VER

    IA-32 architecture only:
    13102292

    X

    X

    _MSC_VER

    1400, 1500, or 1600, depending on the Microsoft Visual Studio* environment (Visual Studio 2005, 2008, or 2010, respectively).

    X

    X

    _MT

    1

    X

    X

    _OPENMP

    200805

    X

    X

    _PGO_INSTRUMENT

    1

    X

    X

    __QMSPP_

    1

    X

    __SIGNED_CHARS__

    1

    X

    X

    _SIZE_T_DEFINED

    no value

    X

    X

    __STDC_VERSION__

    199409L

    X

    X

    __w64

    no value

    X

    X

    _WCHAR_T_DEFINED

    no value

    X

    X

    _WCTYPE_T_DEFINED

    no value

    X

    X

    _WIN32

    1

    X

    X

    _WIN64

    1

    X

    _VA_LIST_DEFINED

    no value

    X

    X

     


    二、Linux版

    2.1 ANSI Standard Predefined Macros(ANSI标准预定义宏)

    http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/lin/bldaps_cls/common/bldaps_ansi_macros.htm

    The ANSI/ISO standard for the C language requires that certain predefined macros be supplied with conforming compilers. The following table lists the macros that the Intel® C++ Compiler supplies in accordance with this standard:

    The compiler includes predefined macros in addition to those required by the standard. The default predefined macros differ among Windows*, Linux*, and Mac OS* X operating systems due to the default /Za compiler option on Windows. Differences also exist on Linux OS and Mac OS X as a result of the -std compiler option.

    Macro

    Value

    __DATE__

    The date of compilation as a string literal in the formMmm dd yyyy.

    __FILE__

    A string literal representing the name of the file being compiled.

    __LINE__

    The current line number as a decimal constant.

    __STDC__

    The name __STDC__ is defined when compiling a C translation unit.

    __STDC_HOSTED__

    1

    __TIME__

    The time of compilation as a string literal in the formhh:mm:ss.


    2.2 Additional Predefined Macros(额外的预定义宏)

    http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/lin/bldaps_cls/cppug_ccl/bldaps_macros_lin.htm

    The Intel® C++ Compiler includes a number of predefined macros. The compiler also includes predefined macros specified by the ISO/ANSI standard.

    Predefined Macros on Systems based on IA-32 or Intel® 64 Architectures

    The following table lists the predefined macros on systems based on either the IA-32 or Intel® 64 architecture.

    Unless otherwise stated, the macros are supported on systems based on IA-32 architecture and also on systems based on Intel® 64 architecture.

    Macro (IA-32 and Intel® 64 architecture)

    Value

    __ARRAY_OPERATORS

    1

    __BASE_FILE__

    Name of source file

    _BOOL

    1

    __cilk

    200; however, if -cilk-serialize or -no-intel-extensions is specified, the value is undefined.

    __cplusplus

    1 (with C++ compiler)

    __DEPRECATED

    1

    __EDG__

    1

    __EDG_VERSION__

    EDG version

    __ELF__

    1

    __extension__

    __EXCEPTIONS

    Defined as 1 when -fno-exceptions is not used.

    __GNUC__

    The major version number of gcc installed on the system.

    __GNUG__

    The major version number of g++ installed on the system.

    __gnu_linux__

    1

    __GNUC_MINOR__

    The minor version number of gcc or g++ installed on the system.

    __GNUC_PATCHLEVEL__

    The patch level version number of gcc or g++ installed on the system.

    __GXX_ABI_VERSION

    102

    __HONOR_STD

    1

    __i386

    Available only on systems based on IA-32 architecture.

    1

    __i386__

    Available only on systems based on IA-32 architecture.

    1

    i386

    Available only on systems based on IA-32 architecture.

    1

    __ICC

    Intel compiler version

    __INTEL_COMPILER

    Intel compiler version

    __INTEL_COMPILER_BUILD_DATE

    YYYYMMDD

    __INTEL_RTTI__

    Defined as 1 when -fno-rtti is not specified.

    __INTEL_STRICT_ANSI__

    Defined as 1 when -strict-ansi is specified.

    __linux

    1

    __linux__

    1

    linux

    1

    __LONG_DOUBLE_SIZE__

    80

    __LONG_MAX__

    Available only on systems based on Intel® 64 architecture.

    9223372036854775807L

    __LP64__

    Available only on systems based on Intel® 64 architecture.

    1

    _LP64

    Available only on systems based on Intel® 64 architecture.

    1

    _MT

    Available only on systems based on Intel® 64 architecture.

    1

    __MMX__

    Available only on systems based on Intel® 64 architecture.

    1

    __NO_INLINE__

    1

    __NO_MATH_INLINES

    1

    __NO_STRING_INLINES

    1

    _OPENMP

    Defined as 200805 when -openmp is specified.

    __OPTIMIZE__

    1

    __pentium4

    1

    __pentium4__

    1

    __PIC__

    Defined as 1 when -fPIC is specified.

    __pic__

    Defined as 1 when -fPIC is specified.

    _PGO_INSTRUMENT

    Defined as 1 when -prof-gen[x] is specified.

    _PLACEMENT_DELETE

    1

    __PTRDIFF_TYPE__

    int on IA-32 architecture;
    long on Intel® 64 architecture

    __REGISTER_PREFIX__

    __SIGNED_CHARS__

    1

    __SIZE_TYPE__

    unsigned on IA-32 architecture
    ; unsigned long on Intel® 64 architecture

    __SSE__

    Defined as 1 for processors that support SSE instructions.

    __SSE2__

    Defined as 1 for processors that support SSE2 instructions.

    __SSE3__

    Defined as 1 for processors that support SSE3 instructions.

    __SSSE3__

    Defined as 1 for processors that support SSSE3 instructions.

    __unix

    1

    __unix__

    1

    unix

    1

    __USER_LABEL_PREFIX__

    __VERSION__

    Intel version string

    __WCHAR_T

    1

    __WCHAR_TYPE__

    long int on IA-32 architecture
    ; int on Intel® 64 architecture

    __WINT_TYPE__

    unsigned int

    __x86_64

    Available only on systems based on Intel® 64 architecture.

    1

    __x86_64__

    Available only on systems based on Intel® 64 architecture.

    1

    作者:zyl910
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    [考试反思]0229省选模拟34:辉光
    [考试反思]0228省选模拟33:展望
    [考试反思]0226省选模拟32:磨灭
    [考试反思]0225省选模拟31:探索
    [考试反思]0224省选模拟30:仓皇
    [考试反思]0223省选模拟29:驻足
    [考试反思]0222省选模拟28:莫返
    大概是个寒假集训总结
    [考试反思]0220省选模拟27:怪异
    [考试反思]0219省选模拟26:精准
  • 原文地址:https://www.cnblogs.com/lihaozy/p/2621660.html
Copyright © 2020-2023  润新知