Skip to main content

IAR Embedded Workbench for Arm 9.70.x

C言語の概要

このセクションの内容:

IAR C/C++コンパイラforArmは、INCITS/ISO/IEC 9899:2018 標準をサポートし、これはC18として知られています。C18は、新しい言語機能を導入することなくC11 (INCITS/ISO/IEC 9899:2012)の不具合を検出します。これは、C11標準もサポートしていることを意味します。IARのユーザ文書では、C18標準は「Standard C」と呼称され、コンパイラで使用されるデフォルトの標準です。この標準はC89 よりも厳密です。

コンパイラは、C18標準またはスーパーセットで書かれたソースコードを受け入れます。 C23 規格(正式には ISO/IEC 9899:2024)に属する機能は、コンパイラに継続的に追加されます。現在サポートされている C23 機能のリストについては、サポートされている C23 機能を参照してください 。

また、コンパイラはISO 9899:1990規格(すべての技術的誤植と追加事項を含む)、通称C94、C90、C89、ANSI Cもサポートしています。 IARのユーザ文書では、この標準は「C89」と呼称されます。この規格を有効にするには、--c89コンパイラオプションを使用します。

Standard Cが有効な場合、IAR C/C++ Compiler for Armは、スレッド関連のシステムヘッダファイルに依存するソースコードファイルを除く、すべてのC18/C11ソースコードファイルをコンパイルできます。

ISO/IEC/IEEE 60559として知られている、標準Cにバインドされた浮動小数点標準は、IEEE 754フォーマットとほぼ同等です。

Annex K は、標準CのAnnex K (境界チェックインターフェース)をサポートします。バウンドチェック機能を参照してください。

C標準の様々なバージョン間のちがいの概要については、Wikipedia記事のC18 (C標準の改訂)C11 (C標準の改訂)、またはC99を参照してください。

サポートされている C23 機能

コンパイラは、正式にはISO/IEC 9899:2024であるC23標準に属する以下のC機能を受け入れます:

  • attribute_syntax[[attr]]

  • __has_c_attributeプリプロセッサ条件指令

    これは、特定の属性がサポートされているかどうかをテストするために使用できます。

  • 標準属性 [[deprecated]][[nodiscard]][[maybe_unused]][[fallthrough]]、および [[noreturn]]