初期のC
-
1969年: B言語が作成される。BCPLを基にしており、Unixのシステムプログラミング言語としてPDP-7アセンブラを置き換えるために開発された
-
-
追加された演算子
++
,
--
、複合代入演算子、BCPLと同様に型なし言語のまま維持された
-
1971: NB(「新しいB」の意)は、B言語をPDP-11に移植する際に作成されました
-
-
型 (
int
,
char
、配列とポインタ)、配列からポインタへの変換、機械語へのコンパイル
-
-
struct
、演算子
&&
および
||
、プリプロセッサ、ポータブルI/O
-
-
unsigned
,
long
,
union
, 列挙型, 強化された型安全性
Standard C
-
1983年: ANSIがX3J11委員会を設立
-
1988年: 『The C Programming Language』第2版
-
1989年:
C89
, ANSI C規格が発行
-
既存の慣行を成文化
-
新機能:
volatile
,
enum
,
signed
,
void
, ロケール
-
C++からの導入:
const
, 関数プロトタイプ
-
1990年:
C90
, ANSI C規格がISO/IEC 9899:1990として承認
-
1994年: 技術的正誤表1 (ISO/IEC 9899:1990/Cor.1:1994)
-
-
1995年:
C95
(ISO/IEC 9899:1990/Amd.1:1995) (
オンラインストア
)
-
大幅に拡張されたワイド文字およびマルチバイト文字のサポート (
<wctype.h>
,
<wchar.h>
、ストリームI/Oへの追加および変更など)
-
ダイグラフ,
<iso646.h>
,
-
1996: 技術的正誤表 2 (ISO/IEC 9899:1990/Cor.2:1996)
-
-
1999:
C99
(ISO/IEC 9899:1999)
-
新機能:
bool
,
long
long
,
<stdint.h>
,
<inttypes.h>
,
restrict
, 複合リテラル, 可変長配列, 柔軟な配列メンバ, 指示付き初期化子,
<fenv.h>
, 可変個引数マクロ, 複素数,
__func__
, 16進浮動小数点形式 (
%
a
),
lconv
における通貨書式,
isblank
, ナロー文字列リテラルとワイド文字列リテラルの連結, 列挙型の末尾のカンマ, 関数形式マクロの空引数,
STDC_
*
プラグマ,
va_copy
,
tmpnam
のヌル返却,
setvbuf
におけるヌルポインタ,
hh
および
ll
長さ指定子 (
printf
,
snprintf
),
_Exit
,
<tgmath.h>
, POSIX形式の
strftime
指定子
-
C++からの導入:
inline
, 宣言とコードの混合, forループの初期化節における宣言,
//
コメント, ソースコードにおけるユニバーサル文字名
-
暗黙的関数と暗黙の
int
の削除
-
2001: 技術的正誤表 1 (ISO/IEC 9899:1999/Cor.1:2001)
-
-
2004年:テクニカル・コリゲンダム2 (ISO/IEC 9899:1999/Cor.2:2004)
-
2004年:Unicode TR (ISO/IEC TR 19769:2004) (
ISOストア
) (
N1040
2003年11月7日草案)
-
2007年:テクニカル・コリゲンダム3 (ISO/IEC 9899:1999/Cor.3:2007) (
N1256
2007年9月7日草案)
-
-
2007: 境界チェックインターフェース TR (ISO/IEC TR 24731-1:2007) (
ISOストア
) (
N1225
2007年3月28日草案)
-
2008: 組込みTR (ISO/IEC TR 18037:2008) (
ISOストア
) (
N1021
2003年9月24日草案)
-
2009: 10進浮動小数点TR (ISO/IEC TR 24732:2009) (
ISOストア
) (
N1241
2007年7月5日草案)
-
2009: 数学的特殊関数TR (ISO/IEC TR 24747:2009) (
ISOストア
) (
N1182
2006年8月2日草案)
-
2010: 動的メモリ確保関数TR (ISO/IEC TR 24731-2:2010) (
ISOストア
) (
N1388
2009年6月1日草案)
-
2011:
C11
(ISO/IEC 9899:2011) (
ISOストア
) (
ANSIストア
) (
N1570
2011年4月12日草案)
-
スレッド対応メモリモデル、
<stdatomic.h>
、
<threads.h>
、型総称関数、
alignas
/
alignof
、
noreturn
、
static_assert
、解析可能性拡張、複素数型と虚数型の拡張、無名構造体と無名共用体、排他的ファイルオープンモード、
quick_exit
-
削除された
gets
-
Bounds-checking interfaces TRより:境界チェックインターフェース、
-
Unicode TRより:
char16_t
、
char32_t
、および
<uchar.h>
-
2012: 技術的正誤表 1 (ISO/IEC 9899:2011/Cor 1:2012) (
ISOストア
)
-
-
2013: セキュアコーディング規則 TS (ISO/IEC TS 17961:2013) (
ISOストア
) (
N1718
2013年5月30日)
-
2014: FP TS パート1: バイナリ浮動小数点演算 (ISO/IEC TS 18661-1:2014) (
ISOストア
) (
N1778
2013年草案)
-
C11(主に附属書F)に対して、IEC 60559:2011の全ての基本要件と一部の推奨事項を網羅する変更を提供します(C11はIEC 60559:1989に基づいて構築されていました)
-
2015: FP TS part 2: Decimal floating-point arithmetic (ISO/IEC TS 18661-2:2015) (
ISOストア
) (
N1912
2015ドラフト)
-
C11に対する変更を提供し、IEC 60559:2011の10進浮動小数点演算に関する全要件と基本的な推奨事項をサポートします。これはISO/IEC TR 24732:2009に取って代わります。
-
2015: FP TS パート3: 交換および拡張型 (ISO/IEC TS 18661-3:2015) (
ISOストア
) (
N1945
2015ドラフト)
-
IEC 60559:2011の拡張浮動小数点形式および交換形式(算術形式と非算術形式の両方)に関する勧告をサポートするためのC11への変更を提供します。
-
2015: FP TS パート4: 補助関数 (ISO/IEC TS 18661-4:2015) (
ISOストア
) (
N1950
2015年草案)
-
IEC 60559:2011で推奨されるすべての数学演算(π単位での三角関数、逆平方根、複利計算など)をサポートするためのC11への変更を提供します。
-
2016: FP TS パート5: 補助的属性 (ISO/IEC TS 18661-5:2016) (
ISOストア
) (
N2004
2016年ドラフト)
-
IEC 60559:2011で推奨されるすべての補助的属性(評価モデル、例外処理、再現性など)をサポートするためのC11への変更を提供します
-
2018年:
C17
(ISO/IEC 9899:2018) (
ISOストア
) (
最終草案
)
-
主な記事: C17
-
2023
C23
(ISO/IEC 9899:2024)。C23はC標準の現行リビジョンです。
-
主な記事: C23
将来の開発
-
Parallelism TS (草案
N2017
2016-03-10)
-
Transactional Memory TS (草案
N1961
2015-09-23)
-
C
(最新草案
n3550
2025-05-04)
-
DRステータスが付与されなかった課題のリスト: (
N2556
2020-08-02)
-
主記事: C29
?
-
次期主要C言語標準改訂
関連項目
日本語訳:
指示に従い、以下の点を厳守しました:
- HTMLタグと属性は翻訳せず保持
- `
`, `
`, `
外部リンク