gcc* との互換性

インテル(R) C++ コンパイラーで作成された C 言語オブジェクト・ファイルは、GNU* gcc* コンパイラーと glibc* (GNU C 言語ライブラリー) とバイナリー互換です。インテル・コンパイラーまたは gcc コンパイラーを使用して、オブジェクト・ファイルをリンカーに渡すことができます。しかし、リンカーにインテル・ライブラリーを正確に渡すには、インテル・コンパイラーを使用してください。

インテル C++ コンパイラーは、GNU C コンパイラー (gcc) および GNU C++ コンパイラー (g++*) が持つ言語拡張機能の多くを提供します。

C 言語に対する gcc 拡張機能

GNU C には、ISO 標準 C にない、さまざまな非標準の機能が含まれています。本バージョンのインテル C++ コンパイラーは、多くの拡張機能をサポートします。次の表にリストを示します。詳細は、http://www.gnu.org/home.ja.html を参照してください。

gcc 言語拡張 インテル
サポート
Statements and Declarations in Expressions
Locally Declared Labels
Labels as Values
Nested Functions X
Constructing Function Calls X
Naming an Expression's Type
Referring to a Type with typeof
Generalized Lvalues
Conditionals with Omitted Operands
Double-Word Integers
Complex Numbers
Hex Floats
Arrays of Length Zero
Arrays of Variable Length
Macros with a Variable Number of Arguments.
Slightly Looser Rules for Escaped Newlines X
String Literals with Embedded Newlines
Non-Lvalue Arrays May Have Subscripts
Arithmetic on void-Pointers
Arithmetic on Function-Pointers
Non-Constant Initializers
Compound Literals
Designated Initializers
Cast to a Union Type
Case Ranges
Mixed Declarations and Code
Declaring Attributes of Functions
Attribute Syntax
Prototypes and Old-Style Function Definitions X
C++ Style Comments
Dollar Signs in Identifier Names
ESC Character in Constants
Specifying Attributes of Variables
Specifying Attributes of Types
Inquiring on Alignment of Types or Variables
Inline Function is As Fast As a Macro
Assembler Instructions with C Expression Operands
Controlling Names Used in Assembler Code
Variables in Specified Registers
Alternate Keywords
Incomplete enum Types
Function Names as Strings
Getting the Return or Frame Address of a Function
Using Vector Instructions Through Built-in Functions X
Other built-in functions provided by GCC
Built-in Functions Specific to Particular Target Machines X
Pragmas Accepted by GCC X
Unnamed struct/union fields within structs/unions

C++ 言語に対する g++ 拡張機能

GNU C++ には、ISO 標準 C にない、さまざまな非標準の機能が含まれています。本バージョンのインテル C++ コンパイラーは、多くの拡張機能をサポートします。次の表にリストを示します。詳細は、http://www.gnu.org/home.ja.html を参照してください。

g++ 言語拡張 インテル
サポート
Minimum and Maximum operators in C++
When is a Volatile Object Accessed? X
Restricting Pointer Aliasing
Vague Linkage
Declarations and Definitions in One Header X
Where's the Template? extern テンプレートをサポート
Extracting the function pointer from a bound pointer to member function X
C++-Specific Variable, Function, and Type Attributes
Java Exceptions X
Deprecated Features X
Backwards Compatibility X

インテル C++ コンパイラーは、アセンブラー・コードが AT&T* System V/386 構文を使用する場合、gcc スタイルのインライン・アセンブリーをサポートします。