GNU Cコンパイラ拡張
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/19 02:07 UTC 版)
「GNUコンパイラコレクション」の記事における「GNU Cコンパイラ拡張」の解説
GNU C コンパイラの特徴のひとつは、前述のようにANSIあるいはISO等の標準への準拠である。もうひとつの特徴は独自の拡張機能である。このような拡張を「GCC拡張機能」とよぶ。GCC拡張機能は数多いが、多引数マクロ、基本型としての複素数型、式の演算結果としての左辺値、初期化式の拡張、Cでのインライン関数定義、ネストした関数定義、ラベルに対する&演算子の適用などがある。 このような拡張は、C99における標準Cの拡張として逆に取り込まれたものも多い。 言語機能の拡張のほかに、標準外機能としてasm文によるインラインアセンブラの機能はユニークである。ただし、GCCにおいてはこのインラインアセンブラ機能を利用して記述したコードに対しても最適化が行われる(プログラマが意図してアセンブリ言語を用いて書いたとしても、その通りのコードが出力されない可能性がある)点に注意が必要である。 その他、研究論文の発表における実装例のベースとして、あるいは実験的機能実装のベースとしてGCC (G++)が使われることも多い。そのような拡張の最近の例としては、スタックバッファオーバーフローに関する脆弱性の回避のためのGCC拡張ProPoliceなどがある。
※この「GNU Cコンパイラ拡張」の解説は、「GNUコンパイラコレクション」の解説の一部です。
「GNU Cコンパイラ拡張」を含む「GNUコンパイラコレクション」の記事については、「GNUコンパイラコレクション」の概要を参照ください。
- GNU Cコンパイラ拡張のページへのリンク