GNU C 互換性の拡張機能

以下の機能は、デフォルトではすべての言語レベルで有効です。 サポートされる GCC 機能について詳しくは、GNU Compiler Collection オンライン資料 (http://gcc.gnu.org/onlinedocs/) を参照してください。

表 1. GNU C との互換性のためのデフォルト IBM XL C および C++ 拡張機能
言語機能 参照先
__alignof__ 演算子 GCC オンライン資料
__attribute__ キーワード 変数属性, 関数属性
__complex__ キーワード GCC オンライン資料
__extension__ キーワード GCC オンライン資料
__imag__ および __real__ 複素数型演算子 GCC オンライン資料
__int128 型と符号なし __int128 GCC オンライン資料
__restrict__ キーワード GCC オンライン資料
__thread ストレージ・クラス指定子 __thread ストレージ・クラス指定子
__typeof__ キーワード typeof キーワード
#include_next プリプロセッサー・ディレクティブ #include_next ディレクティブ
#warning プリプロセッサー・ディレクティブ GCC オンライン資料
代替キーワード GCC オンライン資料
asm インライン・アセンブリー言語ステートメント インライン・アセンブリー・ステートメント
asm ラベル GCC オンライン資料
複素数リテラル接尾部 GCC オンライン資料
計算後の goto ステートメント GCC オンライン資料
ID 内のドル記号 ID の文字
FORTIFY_SOURCE GCC オンライン資料
関数の属性 関数属性
複合リテラルによる静的変数の初期化 複合リテラル式
値としてのラベル GCC オンライン資料
複素数型 (増分、減分、複素共役) の後置演算子および単項演算子 GCC オンライン資料
式 (ステートメント式) のステートメントと宣言 GCC オンライン資料
集合体の柔軟な配列メンバーの静的初期化 構造体の可変長配列
他の構造体のメンバーである、柔軟な配列メンバーを持つ構造体 構造体の可変長配列
型属性 型属性
変数属性 変数属性
可変数引数マクロ拡張機能 可変数引数マクロ
ゼロ・エクステント配列 GCC オンライン資料

C のみの始まり xlc 呼び出しコマンドまたは -qlanglvl=extc99 | extc89 | extc1x | extended オプションでコンパイルする場合、以下の機能がデフォルトで有効になります。C のみの終わり

C++ のみの始まり 以下の機能はデフォルトで、すべての C++ 言語レベルで有効になります。C++ のみの終わり

また、いくつかの機能は下記の表にリストされている特定のコンパイラー・オプションによって使用可能または使用不可になります。
表 2. GNU C との互換性のための IBM XL C および C++ 拡張機能 (個々のオプション制御付き)
言語機能 参照先 個々のオプション制御
typeof キーワード typeof キーワード GCC オンライン資料
visibility 関数属性1 visibility -fvisibility (-qvisibility)
visibility 変数属性1 visibility 変数属性 -fvisibility (-qvisibility)
注:
  1. 変数および関数が、プラグマ・ディレクティブ、明示的に指定された属性、または伝搬規則から visibility 属性を取得していない場合、-fvisibility オプションを使用して、変数および関数に visibility 属性を指定できます。このオプションは、変数または関数に対して visibility 属性を使用不可にするために使用することはできません。
  2. サポートされる GCC 機能について詳しくは、GNU Compiler Collection オンライン資料 (http://gcc.gnu.org/onlinedocs/) を参照してください。