Oracle® Developer Studio 12.5 リリースの新機能

印刷ビューの終了

更新: 2016 年 7 月
 
 

Oracle Solaris での C コンパイラの新しいデフォルト

次の機能は、Oracle Solaris での C コンパイラの新しいデフォルトです。

  • C コンパイラのデフォルトモードが変更されました

  • 新しいデフォルトモードはアプリケーションに影響を与える可能性があります

  • 必要に応じて、古いモードも使用できます

__STDC_VERSION__ の変更点

次の変更点は、__STDC_VERSION__ の新機能について説明したものです。

  • デフォルトでは、Oracle Solaris での以前のバージョンの C コンパイラは認識しているすべての C99 および C11 機能を受け入れましたが、C89 への準拠は __STDC_VERSION__ を 199409L に事前に定義することによってのみ示しました。

  • 新しい C コンパイラはデフォルトで、__STDC_VERSION__ を 201112L に事前に定義することで C11 への準拠を要求します。

Oracle Solaris でのユーザーアプリケーションへの影響

次に、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__ をテストするユーザーアプリケーションは別の方法で解決する可能性があります

–xlang=c89 の一時的な回避方法

–std=c89 を明示的に選択しない可能性があります。選択すると C99 および C11 の機能が無効になるためです。

代わりに、–xlang=c89 を選択した場合は、新しい C コンパイラで以前のバージョンの C コンパイラと同じプログラムを受け入れ、同じ __STDC_VERSION を定義できるようになります。