C言語

C23 紹介

C言語の言語仕様については、ISO/IEC 9899 で定められています。2018年版が最新ですが、C23と呼ばれる次期バージョンのリリースが近づいてきました。C23について簡単に紹介します。

規格のバージョン

ISO/IEC 9899 は、何回か改訂されています。バージョンについてまとめます。

  • C90 1990年に発行されたため、「C90」と呼ばれています。ISO規格がベースとした ANSI規格が1989年に発行されたため、「C89」とも呼ばれることがありますが、「C89」と「C90」は言語仕様として差がありません。多くの人が C言語と認識している多くの仕様がこのバージョンの仕様に基づいていると思われます。
  • C99 1999年に発行されました。このバージョンからC++スタイルのコメント、インライン関数などが導入されました。
  • C11 2011年に発行されました。スレッド対応などが導入されました。
  • C17 2018年に発行されました。2017年に規格発行の準備を予定していたため「C17」と呼ばれています。発行年に合わせて「C18」と呼ぶ場合があるかもしれません。C11 の仕様欠陥の修正が主だと認識されています。

動作しているコンパイラがどのバージョンで動作しているかは、マクロ定数 __STDC_VERSION__ として定義されている long int の値を見れば分かります。

バージョン__STDC_VERSION__ の値
C89/C90マクロが定義されていない。
C99199901L
C11201112L
C17/C18201710L

C23 の現在(2024年6月28日)

ISO/IEC 9899 のページによると、C23の進捗は、40.99 です。DIS(Draft Internationla Standard)が承認されて、FDIS(Final DIS)への移行中です。

(C24 ではなく)C23と呼んでいるかというと、__STDC_VERSION__ の値が、202311L になる予定だからです。

C23の変化点について、日本語で読める記事としては、WIKIBOOKS でまとめられています。かなり大きく変わることが分かります。

最後に

C90以降に導入された文法仕様について、このブログで、順次紹介しく予定です。

C言語について、理解を深めていきましょう。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA