ANSI C
ANSI C、ISO C、または
歴史 と概要
[Cの
C89
[1983
C90
[C89のフォーマットを
この
C95
[1995
wchar.h
とwctype.h
およびI/Oの導入 による、標準 ライブラリでのマルチバイト文字 およびワイド文字 対応 の改善 言語 へのダイグラフの追加 演算 子 の代替 仕様 のための標準 マクロの仕様 化 (&&
→and
など)標準 マクロ__STDC_VERSION__
の仕様 化
この
- ISO/IEC 9899 TCOR1(1995
年 ) - ISO/IEC 9899 TCOR2(1996
年 )
C95互換 性 を確認 するプリプロセッサテスト
[#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L
/* C95 compatible source code. */
#elif defined(__ANSI__)
/* C89 compatible source code. */
#endif
C99
[2000
新 しい組 み込 みデータ型 :long long
、_Bool
、_Complex
、_Imaginary
restrict
キーワードなどの、
stdint.h
、tgmath.h
、fenv.h
,complex.h
などの新 しいライブラリヘッダ- インライン
関数 、一 行 コメント、宣言 とコードのミックス、ユニバーサルキャラクタ名 などの、C++機能 との互換 性 の向上 暗黙 的 な関数 宣言 や暗黙 のint
など、いくつかの危険 なC89言語 機能 を削除
3つのC99の
- ISO/IEC 9899:1999/Cor.1:2001(E)
- ISO/IEC 9899:1999/Cor.2:2004(E)
- ISO/IEC 9899:1999/Cor.3:2007(E) -
標準 ライブラリ関数 gets
を非 推奨 とした
この
C11
[2011_Generic
キーワードを<threads.h>
)、コア<stdatomic.h>
) の
1つのC11の
- ISO/IEC 9899:2011/Cor 1:2012[8]
C17
[2018
その他 の関連 するISO発行 物
[ISOは、
- ISO/IEC TR 19769:2004[10] - Unicode
変換 フォーマットに対応 するライブラリ拡張 について。C11に統合 - ISO/IEC TR 24731-1:2007[11] -
境界 チェックされたインタフェースに対応 するライブラリ拡張 について。C11に統合 - ISO/IEC TR 18037:2008[12] -
組 み込 みプロセッサをサポートするためのC拡張 について - ISO/IEC TR 24732:2009[13] - ISO/IEC TS 18661-2:2015に
代 わる十 進 浮動 小数点 演算 について - ISO/IEC TR 24747:2009[14] -
特殊 な数学 関数 について - ISO/IEC TR 24731-2:2010[15] -
動的 割 り当 て機能 に対応 するライブラリ拡張 について - ISO/IEC TS 17961:2013[16] - Cの
安全 なコーディングについて - ISO/IEC TS 18661-1:2014[17] - IEC 60559:2011に
準拠 した二 進 浮動 小数点 演算 - ISO/IEC TS 18661-2:2015[18] - IEC 60559:2011と
互換 性 のある十 進 浮動 小数点 演算 - ISO/IEC TS 18661-3:2015[19] - IEC 60559:2011
互換 のインターチェンジおよび拡張 浮動 小数点 型 - ISO/IEC TS 18661-4:2015[20] - IEC 60559:2011に
準拠 した補助 機能
TS 18661の5
主要 なコンパイラによる対応
[ANSI Cは
K&R CとANSI Cの__STDC__
マクロを
#if defined(__STDC__) && __STDC__
extern int getopt(int, char * const *, const char *);
#else
extern int getopt();
#endif
ANSI Cに対応 するコンパイラ
[- アムステルダム・コンパイラ・キット(C K&R と C89/90)
- ARM RealView
- Clang(LLVM バックエンドを
使用 ) - GCC(C89/90, C99, C11
完全 対応 ) - PCC(C89, C99, C11)
- HP C/ANSI Cコンパイラ (C89, C99)[22]
- IBM XL C/C++コンパイラ (C11, starting with version 12.1)[23]
- Intel C++ Compiler
- LabWindows/CVI
- LCC
- OpenWatcom (C89/90 and some C99)
- Microsoft Visual C++ (C89/90 and some C99)
- Pelles C (C99, Windows only.)
関連 項目
[脚注
[- ^ “Standards - Using the GNU Compiler Collection (GCC)”. 2012
年 6月 24日 閲覧 。 - ^ http://www.techstreet.com/cgi-bin/detail?doc_no=incits_iso_iec%7C9899;product_id=232462
- ^ “ISO/IEC 9899:1990 - Programming Languages -- C”. 2012
年 6月 24日 閲覧 。 - ^ Clive D.W. Feather (2010
年 9月 12日 ). “A brief description of Normative Addendum 1”. 2017年 8月 1日 閲覧 。 - ^ “ISO/IEC 9899:1990/Amd 1:1995”. International Organization for Standardization (2013
年 3月 22日 ). 2017年 8月 1日 閲覧 。 - ^ “INCITS/ISO/IEC 9899-2012”. ANSI. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC 9899:1999 - Programming Languages -- C”. 2012
年 6月 24日 閲覧 。 - ^ “ISO/IEC 9899:2011/Cor 1:2012”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ C の
歴史 - cppreference.com - ^ “ISO/IEC TR 19769:2004”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TR 24731-1:2007”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TR 18037:2008”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TR 24732:2009”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TR 24747:2009”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TR 24731-2:2010”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TS 17961:2013”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TS 18661-1:2014”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TS 18661-2:2015”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TS 18661-3:2015”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ “ISO/IEC TS 18661-4:2015”. International Organization for Standardization. 2017
年 8月 1日 閲覧 。 - ^ See a list at http://en.cppreference.com/w/c/experimental Visited 16 January 2016.
- ^ “HP C/ANSI C developer's bundle”. 2015
年 7月 12日 閲覧 。 - ^ Support for ISO C11 added to IBM XL C/C++ compilers
外部 リンク
[- ISO C working group
- Draft ANSI C Standard (ANSI X3J11/88-090) (May 13, 1988), Third Public Review
- Draft ANSI C Rationale (ANSI X3J11/88-151) (Nov 18, 1988)
- C Information Bulletin #1 (ANSI X3J11/93-007) (May 27, 1992)
- ANSI C Yacc grammar
- Schreiner, Axel-Tobias. Object oriented programming with ANSI-C. Hanser. hdl:1850/8544. ISBN 3-446-17426-5
- “ISO/IEC 9899:1999 Programming Languages -- C”. American National Standards Institute. 2017
年 8月 1日 閲覧 。 - “ANSI Standards Action Vol. 36, #48”. American National Standards Institute (2005
年 12月2日 ). 2017年 8月 1日 閲覧 。