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]]