Oracle Solaris Studio 12.2: C ユーザーガイド

6.1 基本モード

ISO C コンパイラでは、古い形式と新しい形式の両方の C コードを使用できます。次の -X (大文字の X であることに注意) オプションを -xc99=none と併せて使用すると、コンパイラに ISO C 規格への準拠の度合いを指定できます。-Xa はデフォルトのモードです。コンパイラのデフォルトのモードは -xc99=all であるため、各 -X オプションを指定した場合の動作は -xc99 の設定に依存します。

6.1.1 -Xc

(c = conformance) ISO C に最大限に準拠します。K&R C との拡張互換性はありません。ISO C にない構文を使用しているプログラムに対して、エラーと警告を発行します。

6.1.2 -Xa

ISO C に K&R C との拡張互換性を持たせます。ISO C に従って意味解釈を変更します。同じ言語構造に対して K&R C と ISO C の意味解釈が異なる場合は、相違に関する警告を発行した上で、ISO C に準拠した解釈を行います。これは、デフォルトのモードです。

6.1.3 -Xt

(t = transition) ISO C に K&R C との拡張互換性を持たせます。ISO C に従った意味解釈の変更は行いません。同じ構文に対して K&R C と ISO C の意味解釈が異なる場合は、相違に関する警告を発行した上で、K&R C に準拠した解釈を行います。

6.1.4 -Xs

(s = K&R C) コンパイルした言語には、ISO K&R C と互換性を持つすべての機能が含まれます。ISO C と K&R C の間で動作が異なるすべての言語構文に対して、警告を発行します。