ISO C: Difference between revisions

From dankwiki
No edit summary
Line 16: Line 16:


==stdint.h==
==stdint.h==
An awesome addition. Type constructions of the form u?int{variety}_t (u prefix denotes unsigned). Varieties include:
An excellent addition in C99. Type constructions of the form u?int{variety}_t (u prefix denotes unsigned). Varieties include:
* <tt>ptr</tt>: Size sufficient to hold a pointer. This is useful for function type definitions, when it's unsure whether a pointer or integer type would be most appropriate for various instances (a <tt>void *</tt>'s size is not directly related to an <tt>int</tt>'s size by the ANSI C standard).
* <tt>ptr</tt>: Size sufficient to hold a pointer. This is useful for function type definitions, when it's unsure whether a pointer or integer type would be most appropriate for various instances (a <tt>void *</tt>'s size is not directly related to an <tt>int</tt>'s size by the ANSI C standard).
* <tt>max</tt>: Size sufficient to hold any other integer type.
* <tt>max</tt>: Size sufficient to hold any other integer type.

Revision as of 01:34, 4 October 2009

Compilers

gcc

Threads

Aliasing

stdint.h

An excellent addition in C99. Type constructions of the form u?int{variety}_t (u prefix denotes unsigned). Varieties include:

  • ptr: Size sufficient to hold a pointer. This is useful for function type definitions, when it's unsure whether a pointer or integer type would be most appropriate for various instances (a void *'s size is not directly related to an int's size by the ANSI C standard).
  • max: Size sufficient to hold any other integer type.
  • fast{8,16,32,64}: Fastest integer type having at least the specified width.
  • least{8,16,32,64}: Minimum native integer type having at least the specified width.
  • {8,16,32,64}: Integer type having precisely this width.