C99 summary

S

Shaun Jackman

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?

Thanks,
Shaun
 
S

Shaun Jackman

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.

Cheers,
Shaun
 
T

those who know me have no need of my name

in comp.lang.c i read:
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?

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.
 
D

Dan Pop

In said:
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?

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
 

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. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top