gcc との互換性

インテル® C++ コンパイラで作成される C 言語のオブジェクト・ファイルは、GNU* gcc コンパイラと GNU C 言語ライブラリである glibc とバイナリ互換があります。C 言語のオブジェクト・ファイルは、インテル・コンパイラまたは gcc コンパイラのいずれかにリンクすることができます。しかし、インテル・ライブラリをリンカに正確に渡すには、インテル・コンパイラを使用してください。詳細は、「リンクデフォルト・ライブラリ」を参照してください。

GNU C には、ISC 標準準拠の C にはない機能がいくつか含まれています。このバージョンのインテル C++ コンパイラは、これら多くの C 言語の拡張機能をサポートしています。詳細は、Webサイト http://www.gnu.org を参照してください。

C 言語の gcc 拡張機能 インテル
サポート
GNU の説明と例
Statements and Declarations in Expressions (式の中の複合文と宣言) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Statement-Exprs.html#Statement%20Exprs
Locally Declared Labels (ローカル宣言レベル) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Local-Labels.html#Local%20Labels
Labels as Values (値としてのラベル) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Labels-as-Values.html#Labels%20as%20Values
Nested Functions (入れ子の関数) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Nested-Functions.html#Nested%20Functions
Constructing Function Calls (関数呼出しの構築) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Constructing-Calls.html#Constructing%20Calls
Naming an Expression's Type (式の型の指定) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Naming-Types.html#Naming%20Types
Referring to a Type with typeof (typeof による型の参照)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Typeof.html#Typeof

Generalized Lvalues (一般化された左辺値) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Lvalues.html#Lvalues
Conditionals with Omitted Operands (省略されたオペランドを備えた三項条件式) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Conditionals.html#Conditionals
Double-Word Integers (ダブルワード整数) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Long-Long.html#Long%20Long
Complex Numbers (複素数) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Complex.html#Complex
Hex Floats (16進浮動) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Hex-Floats.html#Hex%20Floats
Arrays of Length Zero (長さ0の配列) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Zero-Length.html#Zero%20Length
Arrays of Variable Length (引数の数が可変のマクロ) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Variable-Length.html#Variable%20Length
Macros with a Variable Number of Arguments (引数の数が可変のマクロ) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Variadic-Macros.html#Variadic%20Macros
Slightly Looser Rules for Escaped Newlines (エスケープされた改行に対するより柔軟な規則) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Escaped-Newlines.html#Escaped%20Newlines
String Literals with Embedded Newlines (埋め込まれた改行による文字列リテラル) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Multi-line-Strings.html#Multi-line%20Strings
Non-Lvalue Arrays May Have Subscripts (左辺値でない配列には添字があるかもしれません) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Subscripting.html#Subscripting
Arithmetic on void-Pointers (voidポインタの演算) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Pointer-Arith.html#Pointer%20Arith
Arithmetic on Function-Pointers (関数ポインタの演算) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Pointer-Arith.html#Pointer%20Arith
Non-Constant Initializers (非定数の初期化式) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Initializers.html#Initializers
Compound Literals (コンパウンド・リテラル) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Compound-Literals.html#Compound%20Literals
Designated Initializers (指定初期化子) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Designated-Inits.html#Designated%20Inits
Cast to a Union Type (Union型へのキャスト) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Cast-to-Union.html#Cast%20to%20Union
Case Ranges (範囲付きCase文) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Case-Ranges.html#Case%20Ranges
Mixed Declarations and Code (混在する宣言とコード) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Mixed-Declarations.html#Mixed%20Declarations
Declaring Attributes of Functions (関数の属性の宣言) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Function-Attributes.html#Function%20Attributes
Attribute Syntax (属性の構文) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Attribute-Syntax.html#Attribute%20Syntax
Prototypes and Old-Style Function Definitions (プロトタイプとオールドスタイル関数定義) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Function-Prototypes.html#Function%20Prototypes
C++ Style Comments (C++スタイルのコメント) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/C---Comments.html#C++%20Comments
Dollar Signs in Identifier Names (識別子名の中のドル記号) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Dollar-Signs.html#Dollar%20Signs
The Character ESC in Constants (定数の中のESC文字)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Character-Escapes.html#Character%20Escapes

Specifying Attributes of Variables (変数の属性の指定)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Variable-Attributes.html#Variable%20Attributes

Specifying Attributes of Types (型の属性の指定) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Type-Attributes.html#Type%20Attributes
Inquiring on Alignment of Types or Variables (型または変数のアラインメントの問い合わせ)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Alignment.html#Alignment

An Inline Function is As Fast As a Macro (マクロと同じくらい速いインライン関数) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Inline.html#Inline
Assembler Instructions with C Expression Operands (C式オペランドを備えたアセンブラ命令) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Extended-Asm.html#Extended%20Asm
Controlling Names Used in Assembler Code (アセンブラコードの中で使用される名前の制御)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Asm-Labels.html#Asm%20Labels

Variables in Specified Registers (指定されたレジスタの変数) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Explicit-Reg-Vars.html#Explicit%20Reg%20Vars
Alternate Keywords (代替キーワード) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Alternate-Keywords.html#Alternate%20Keywords
Incomplete enum Types (不完全なenum型) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Incomplete-Enums.html#Incomplete%20Enums
Function Names as Strings (文字列としての関数名) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Function-Names.html#Function%20Names
Getting the Return or Frame Address of a Function (関数の戻り値またはフレームアドレスの取得) http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Return-Address.html#Return%20Address

Using Vector Instructions Through Built-in Functions (ビルトイン関数のベクトル命令の使用)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Vector-Extensions.html#Vector%20Extensions

Other built-in functions provided by GCC (GCC提供のその他のビルトイン関数)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Other-Builtins.html#Other%20Builtins

Built-in Functions Specific to Particular Target Machines (特定のマシン用のビルトイン関数)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Target-Builtins.html#Target%20Builtins

Pragmas Accepted by GCC (GCCで指定したプラグマ)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Pragmas.html#Pragmas

Unnamed struct/union fields within structs/unions (構造体と共用体内の名前なしの構造体と共用体の項目)

http://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Unnamed-Fields.html#Unnamed%20Fields