C - AshokBhat/notes GitHub Wiki

About

  • Programming language

Major versions

C99

  • Adopted in 2000

  • New built-in data types:

    • long long
    • _Bool
    • _Complex
    • _Imaginary
  • New core language features:

    • static array indices
    • designated initializers
    • compound literals
    • variable-length arrays
    • flexible array members
    • variadic macros
    • restrict keyword
  • New library headers

    • stdint.h
    • tgmath.h
    • fenv.h
    • complex.h
  • Improved compatibility with several C++ features

    • inline functions
    • single-line comments with //
    • mixing declarations and code
    • universal character names in identifiers
  • Removed several dangerous C89 language features

    • implicit function declarations
    • implicit int

C11

  • C11 mainly standardizes features already supported by common contemporary compilers
  • Includes a detailed memory model to better support multiple threads of execution
  • Makes certain C99 features optional, to make it easier to comply with the core language standard

C18

  • Standardized in 2018
  • Addressed defects in C11 without introducing new language features.

C2x

  • Informal name for the next major C language standard revision
  • Not expected to be voted on until 2021

See also