次の機能は、Oracle Solaris での C コンパイラの新しいデフォルトです。
C コンパイラのデフォルトモードが変更されました
新しいデフォルトモードはアプリケーションに影響を与える可能性があります
必要に応じて、古いモードも使用できます
次の変更点は、__STDC_VERSION__ の新機能について説明したものです。
デフォルトでは、Oracle Solaris での以前のバージョンの C コンパイラは認識しているすべての C99 および C11 機能を受け入れましたが、C89 への準拠は __STDC_VERSION__ を 199409L に事前に定義することによってのみ示しました。
新しい C コンパイラはデフォルトで、__STDC_VERSION__ を 201112L に事前に定義することで C11 への準拠を要求します。
次に、Oracle Solaris プラットフォームでのユーザーアプリケーションへの影響について説明します。
_XOPEN_SOURCE、_POSIX_SOURCE、_POSIX_C_SOURCE などのマクロを使用する、インクルードされたファイルや機能テストは、別の方法で解決する可能性があります。
たとえば、_POSIX_SOURCE を使用した場合、このエラーは次のようになります。
Compiler or options invalid for pre-UNIX 03 X/Open applications
この問題は、standards(5) のマニュアルページに記載されているとおり、_POSIX_SOURCE が理論上は C89 コンパイラを要求していることです。
使用しているアプリケーションが古いバージョンの標準 (_POSIX_SOURCE など) についてテストしている場合は、コードの変更を考慮して新しいバージョン (この例では _XOPEN_SOURCE=600) を試してください。
__STDC_VERSION__ をテストするユーザーアプリケーションは別の方法で解決する可能性があります
–std=c89 を明示的に選択しない可能性があります。選択すると C99 および C11 の機能が無効になるためです。
代わりに、–xlang=c89 を選択した場合は、新しい C コンパイラで以前のバージョンの C コンパイラと同じプログラムを受け入れ、同じ __STDC_VERSION を定義できるようになります。