C Programming/Language overloading and extensions

Most C compilers have one or more "extensions" to the standard C language, to do things that are inconvenient to do in standard, portable C.

Some examples of language extensions:


 * in-line assembly language
 * interrupt service routines
 * variable-length data structure (a structure whose last item is a "zero-length array").
 * re-sizeable multidimensional arrays
 * various "#pragma" settings to compile quickly, to generate fast code, or to generate compact code.
 * bit manipulation, especially bit-rotations and things involving the "carry" bit
 * storage alignment
 * Arrays whose length is computed at run time.