C99 summary

Discussion in 'C Programming' started by Shaun Jackman, Jun 30, 2003.

  1. I'm looking for information about C99 features. The standard from ANSI is
    probably not what I need (reams and reams of standard-speak). I'd just like
    a summary of each feature added: a couple sentences and a code fragment
    would be perfect. Do you know of such a resource?

    Shaun Jackman, Jun 30, 2003
    1. Advertisements

  2. Yes, it is. I, like many others, use Google to search the web. If you ask
    Google for C99, you do not get C9x. It is not that bright. Now that I know
    C9x is a synonym for C99, I was able to easily find it. You'll note that
    the document you posted does not use the term C99 anywhere in its body.

    Shaun Jackman, Jun 30, 2003
    1. Advertisements

  3. in comp.lang.c i read:
    actually the standard is just what you want, it contains a summary of the
    changes. and naturally it has the details too, should you find the summary
    to be insufficient alone.
    those who know me have no need of my name, Jun 30, 2003
  4. Shaun Jackman

    Dan Pop Guest

    Not really, but the C99 foreword provides an outline:

    5 This second edition cancels and replaces the first edition,
    ISO/IEC 9899:1990, as amended and corrected by ISO/IEC
    9899/COR1:1994, ISO/IEC 9899/AMD1:1995, and ISO/IEC
    9899/COR2:1996. Major changes from the previous edition include:

    - restricted character set support via digraphs and <iso646.h>
    (originally specified in AMD1)

    - wide character library support in <wchar.h> and <wctype.h>
    (originally specified in AMD1)

    - more precise aliasing rules via effective type

    - restricted pointers

    - variable-length arrays

    - flexible array members

    - static and type qualifiers in parameter array declarators

    - complex (and imaginary) support in <complex.h>

    - type-generic math macros in <tgmath.h>

    - the long long int type and library functions

    - increased minimum translation limits

    - additional floating-point characteristics in <float.h>

    - remove implicit int

    - reliable integer division

    - universal character names (\u and \U)

    - extended identifiers

    - hexadecimal floating-point constants and %a and %A printf/scanf
    conversion specifiers

    - compound literals

    - designated initializers

    - // comments

    - extended integer types and library functions in <inttypes.h>
    and <stdint.h>

    - remove implicit function declaration

    - preprocessor arithmetic done in intmax_t/uintmax_t

    - mixed declarations and code

    - new block scopes for selection and iteration statements

    - integer constant type rules

    - integer promotion rules

    - macros with a variable number of arguments

    - the vscanf family of functions in <stdio.h> and <wchar.h>

    - additional math library functions in <math.h>

    - floating-point environment access in <fenv.h>

    - IEC 60559 (also known as IEC 559 or IEEE arithmetic) support

    - trailing comma allowed in enum declaration

    - %lf conversion specifier allowed in printf

    - inline functions

    - the snprintf family of functions in <stdio.h>

    - boolean type in <stdbool.h>

    - idempotent type qualifiers

    - empty macro arguments

    - new struct type compatibility rules (tag compatibility)

    - additional predefined macro names

    - _Pragma preprocessing operator

    - standard pragmas

    - __func__ predefined identifier

    - va_copy macro

    - additional strftime conversion specifiers

    - LIA compatibility annex

    - deprecate ungetc at the beginning of a binary file

    - remove deprecation of aliased array parameters

    - conversion of array to pointer not limited to lvalues

    - relaxed constraints on aggregate and union initialization

    - relaxed restrictions on portable header names

    - return without expression not permitted in function that
    returns a value (and vice versa)

    Although not obvious from this enumeration, the standard C99 library is
    *much* larger than the standard C89 library.

    Dan Pop, Jul 1, 2003
  5. His real point is you are inept at searching for things on the internet.

    Step 1: I went to http://www.google.com/
    Step 2: I typed in to search for "c99 changes"
    step 3: The fourth entry down is http://home.tiscalinet.ch/t_wolf/tw/c/c9x_changes.html

    This is probably how he found it. If you knew what you were doing, you would have found it too. It does not require knowing to
    search for "c9x" or any other such nonsense.
    Ricardo Gibert, Jul 1, 2003
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.