C language object files created with the Intel® C++ Compiler are binary compatible with the GNU gcc* compiler and glibc*, the GNU C language library. You can use the Intel compiler or the gcc compiler to pass object files to the linker. However, to correctly pass the Intel libraries to the linker, use the Intel compiler.
The Intel C++ Compiler supports many of the language extensions provided by the GNU compilers.
GNU C includes several, non-standard features not found in ISO standard C. This version of the Intel C++ Compiler supports most of these extensions listed in the following table. See http://www.gnu.org for more information.
gcc Language Extension |
Intel |
---|---|
Statements and Declarations in Expressions |
Yes |
Locally Declared Labels |
Yes |
Labels as Values |
Yes |
Nested Functions |
No |
Constructing Function Calls |
No |
Naming an Expression's Type |
Yes |
Referring to a Type with typeof |
Yes |
Generalized Lvalues |
Yes |
Conditionals with Omitted Operands |
Yes |
Double-Word Integers |
Yes |
Complex Numbers |
Yes |
Hex Floats |
Yes |
Arrays of Length Zero |
Yes |
Arrays of Variable Length |
Yes |
Macros with a Variable Number of Arguments. |
Yes |
Slightly Looser Rules for Escaped Newlines |
No |
String Literals with Embedded Newlines |
Yes |
Non-Lvalue Arrays May Have Subscripts |
Yes |
Arithmetic on void-Pointers |
Yes |
Arithmetic on Function-Pointers |
Yes |
Non-Constant Initializers |
Yes |
Compound Literals |
Yes |
Designated Initializers |
Yes |
Cast to a Union Type |
Yes |
Case Ranges |
Yes |
Mixed Declarations and Code |
Yes |
Declaring Attributes of Functions |
Yes |
Attribute Syntax |
Yes |
Prototypes and Old-Style Function Definitions |
No |
C++ Style Comments |
Yes |
Dollar Signs in Identifier Names |
Yes |
ESC Character in Constants |
Yes |
Specifying Attributes of Variables |
Yes |
Specifying Attributes of Types |
Yes |
Inquiring on Alignment of Types or Variables |
Yes |
Inline Function is As Fast As a Macro |
Yes |
Assembler Instructions with C Expression Operands |
Yes |
Controlling Names Used in Assembler Code |
Yes |
Variables in Specified Registers |
Yes |
Alternate Keywords |
Yes |
Incomplete enum Types |
Yes |
Function Names as Strings |
Yes |
Getting the Return or Frame Address of a Function |
Yes |
Using Vector Instructions Through Built-in Functions |
No |
Other built-in functions provided by GCC |
Yes |
Built-in Functions Specific to Particular Target Machines |
No |
Pragmas Accepted by GCC |
Yes |
Unnamed struct/union fields within structs/unions |
Yes |
Decimal floating types |
Yes |
GNU C++ includes several, non-standard features not found in ISO standard C++. This version of the Intel C++ Compiler supports many of these extensions listed in the following table. See http://www.gnu.org for more information.
g++ Language Extension |
Intel |
---|---|
Minimum and Maximum operators in C++ |
Yes |
When is a Volatile Object Accessed? |
No |
Restricting Pointer Aliasing |
Yes |
Vague Linkage |
Yes |
Declarations and Definitions in One Header |
No |
Where's the Template? |
extern template supported |
Extracting the function pointer from a bound pointer to member function |
Yes |
C++-Specific Variable, Function, and Type Attributes |
Yes |
Java Exceptions |
No |
Deprecated Features |
No |
Backwards Compatibility |
No |
Statement expressions are supported, except the following are prohibited inside them:
dynamically-initialized local static variables
local non-POD class definitions
try/catch
The Intel C++ Compiler supports gcc-style inline ASM if the assembler code uses AT&T* System V/386 syntax.
Copyright © 1996-2010, Intel Corporation. All rights reserved.