ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

History of C

2022-06-17 07:01:48  阅读:288  来源: 互联网

标签:TR TS ISO draft IEC store History


来自: https://en.cppreference.com/w/c/language/history

History of C

  C   C language  

Early C

  • 1969: B created, based on BCPL, to replace PDP-7 assembler as the system programming language for Unix
  • added operators ++, --, compound assignment, remained a typeless language like BCPL
  • 1971: NB ("new B") created when porting B to PDP-11
  • types (int, char, arrays and pointers), array-to-pointer conversion, compilation to machine code
  • 1972: Language renamed to C
  • structs, operators && and ||, preprocessor, portable I/O
  • 1973: Unix re-written in C
  • unsigned, long, unions, enumerations, increased type safety
  • 1978: The C Programming Language, 1st edition

Standard C

  • 1983: ANSI established X3J11 committee
  • 1988: The C Programming Language, 2nd edition
  • 1989: C89, the ANSI C standard published
  1. codified existing practices
  2. new features: volatile, enum, signed, void, locales
  3. From C++: const, function prototypes
  • 1990: C90, the ANSI C standard accepted as ISO/IEC 9899:1990
  • 1994: Technical corrigendum 1 (ISO/IEC 9899:1990/Cor.1:1994)
  1. greatly expanded wide and multibyte character support (wctype.h, wchar.h, additions and changes to stream I/O, etc)
  2. digraphs, iso646.h,
  • 1996: Technical corrigendum 2 (ISO/IEC 9899:1990/Cor.2:1996)
  • 1999: C99 (ISO/IEC 9899:1999)
  1. new features: bool, long long, stdint.h, inttypes.h, restrict, compound literals, variable length arrays, flexible array members, designated initializers, fenv.h, variadic macros, complex numbers, __func__, hexadecimal floating point format (%a), monetary formatting in lconv, isblank, concatenation of narrow and wide string literals, trailing comma in enumerations, empty arguments in function-like macros, STDC_* pragmas, va_copy, null return of tmpnam, null pointer in setvbuf, hh and ll lengthspecifiers in printf, snprintf, _Exit, tgmath.h, POSIX-like strftime specifiers
  2. from C++: inline, mix declarations and code, declarations in the init clause of the for loop, // comments, universal character names in source code
  3. removed implicit functions and implicit int
  • 2001: Technical corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001)
  1. thread-aware memory model, stdatomic.h, threads.h, type-generic functions, alignas/alignof, noreturn, static assert, analyzability extensions, extensions to complex and imaginary types, anonymous structures and unions, exclusive file open mode. quick_exit
  2. removed gets
  3. from Bounds-checking interfaces TR: bounds-checking interfaces,
  4. from Unicode TR: char16_t, char32_t, and uchar.h
  • 2012: Technical corrigendum 1 (ISO/IEC 9899:2011/Cor 1:2012) (ISO store)
  1. provides changes to C11 (mostly to Annex F) that cover all basic requirements and some recommendations of IEC 60559:2011 (C11 was built on IEC 60559:1989)
  • 2015: FP TS part 2: Decimal floating-point arithmetic (ISO/IEC TS 18661-2:2015) (ISO store) (2015 draft)
  1. provides changes to C11 to support all the requirements, plus some basic recommendations, of IEC 60559:2011 for decimal floating-point arithmetic. This supersedes ISO/IEC TR 24732:2009.
  • 2015: FP TS part 3: Interchange and extended types (ISO/IEC TS 18661-3:2015) (ISO store) (2015 draft)
  1. provides changes to C11 to support the recommendations of IEC 60559:2011 for extended floating‐point formats and the interchange formats, both arithmetic and non-arithmetic.
  • 2015: FP TS part 4: Supplementary functions (ISO/IEC TS 18661-4:2015) (ISO store) (2015 draft)
  1. provides changes to C11 to support all mathematical operations recommended by IEC 60559:2011, including trigonometry in π units, inverse square root, compounded interest, etc.
  • 2016: FP TS part 5: Supplementary attributes (ISO/IEC TS 18661-5:2016) (ISO store)(2016 draft)
  1. provides changes to C11 to support all supplementary attributes (evaluation model, exception handling, reproducibility, etc) recommended by IEC 60559:2011
Main Article: C17
 [Expand] Defect Reports fixed in C17 (54 defects)

Future development

  • Parallelism TS (Draft n2017 2016-03-10)
  • Transactional Memory TS (Draft n1961 2015-09-23)
  • C23 (Draft n2731 2021-10-18)
  1. List of issues that were not granted DR status: n2556 (2020-08-02)
Main Article: C23
Next major C language standard revision
 [Expand] Defect Reports fixed in C23 (? defects)

See also

C++ documentation for History of C++

References

标签:TR,TS,ISO,draft,IEC,store,History
来源: https://www.cnblogs.com/aozhejin/p/16354061.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有