(C23 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/10/13 17:50 UTC 版)
|
|
この項目「C23 (C言語)」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:英語版 "C23 (C standard revision)" 2024年11月2日 (土) 08:03 (UTC))
修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2024年11月) |
|
|
原文と比べた結果、この記事には多数の(または内容の大部分に影響ある)誤訳があることが判明しています。情報の利用には注意してください。 (2024年11月)
|
C23(ISO/IEC 9899:2024)とは、C言語の現在のオープン標準であり、C17(ISO/IEC 9899:2018)の後継規格である[1]。2016年にC2xとして非公式に策定が開始され[2]、2024年10月31日に発行された[3]。発行された規格に最も近い自由に入手できる草案はN3220である(#利用可能な文書を参照)[4]。C2x草案の最初のWG14会議は2019年10月に開催され[5]、新型コロナウイルス感染症の世界的流行によって2020年は仮想リモート会議として開催され、その後、2024年まで様々な遠隔会議が継続的に開催された。
C23では、__STDC_VERSION__の値が201710Lから202311Lに変更される。一般名の「C17」や「C23」はISO規格識別子の年(9899:2018と9899:2024)ではなく、規格発行前に固定されるこれらの値を反映している。
C23の最新の作業草案に統合された変更点は以下の通りである[6]。
<string.h>にmemset_explicit()関数を追加[7]。機密データを消去する目的で、最適化に関係なく常にメモリ書き込み (store) を実行する必要がある場面で使用される。<string.h>にmemccpy()関数を追加[8]。文字列を効率的に連結する。POSIXとSVIDのC拡張と同様である。<string.h>にstrdup()およびstrndup()関数を追加[9]。文字列の複製を割り当てる。POSIXとSVIDのC拡張と同様である。<stdlib.h>にmemalignment()関数を追加[10]。<stdbit.h>を追加し、多くの整数型でビット関連の操作をするための関数、マクロ、データ型を定義。全てstdc_で始まるので古いコードやサードパーティのライブラリとの競合を最小限に抑えることができる[11]。
*は特定の整数型向けの関数ではこれをuc、us、ui、ul、ullのいずれかに置き換え、ジェネリック関数ではこれを除去して読む[11]。stdc_count_ones*()およびstdc_count_zeros*()関数を追加[11]。stdc_leading_ones*()およびstdc_leading_zeros*()関数を追加[11]。stdc_trailing_ones*()およびstdc_trailing_zeros*()関数を追加[11]。stdc_first_leading_one*()およびstdc_first_leading_zero*()関数を追加[11]。stdc_first_trailing_one*()およびstdc_first_trailing_zero*()関数を追加[11]。trueを返す)stdc_has_single_bit*()関数を追加[11]。stdc_bit_floor*()関数を追加[11]。stdc_bit_ceil*()関数を追加[11]。stdc_bit_width*()関数を追加[11]。<time.h>にglibcとmuslにあるような時間を表す構造体をtime_tに変換できるtimegm()関数を追加する[12]。<math.h>にIEEE 754-2019の推奨に基づく以下のコンパイラはC23に実験的に対応しており、これを利用するためのオプションを提供している:
また、GCCに関しては、バージョン15からC23がコンパイラ標準となっている。[70]
C17などの他のC言語の標準規格と同様に、C23のISOの公式規格書は自由に入手することはできない。
C23の仕様が確定する前の最後の作業草案は2023年4月1日付のN3096である[6]。この草案の後の数カ月間、2023年7日9日付の作業草案N3149と2024年2月22日付の公式標準草案N3219が作成されるまでに数百の変更[71]が行われた[71][72]。これら以降の草案は非公開である[71][72]。
標準草案N3219が発表されたのと同日、新たな作業草案N3220[4]が公開された。この草案は公式には将来のC言語の標準である「C2Y」の草案であると説明[72]されているが、付随する「編集者レポート」では、N3219との違いは付録Kの1つの脚注の修正だけであると明記されている[72]。
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/03/22 02:02 UTC 版)
C23にはフェラーリ製のギヤボックスが搭載されるであろうとの噂は2003年シーズン終了間際から語られていた。それはエンジンをフェラーリから供給されていることも影響していた。 C23の発表会はレッドブルとのスポンサー10周年を記念して、レッドブルが所有する飛行機などの格納庫のハンガー7で派手に行われた。そこでお披露目されたC23はフェラーリと同型のTipo053エンジン(1グランプリ1エンジン規則のため)とフェラーリの2003年型ギヤボックスを搭載するだけでなく、全体がフェラーリの前年モデルF2003-GAに酷似していた。ホイールはO・Z製で、2004年レギュレーションに対応したリヤウイングとエンジンカバーを装着していたが、サイドポッドの丸みやシャークルーバーの位置など、外観はまさにF2003-GAだった。発表会ではオリジナルだったフロントウイングも、最初のテストではF2003-GAと同様のものに変えられた。 このようにあまりにも似ていることから青いフェラーリと揶揄された。
※この「C23」の解説は、「ザウバー・C23」の解説の一部です。
「C23」を含む「ザウバー・C23」の記事については、「ザウバー・C23」の概要を参照ください。