"GCC and Linux are a great pair. Although they are independent
pieces of software, Linux is totally dependent on GCC to enable it
on new architectures. Linux further exploits features in GCC,
called extensions, for greater functionality and optimization. This
article explores many of these important extensions and shows you
how they're used within the Linux kernel.
GCC in its current stable version (version 4.3.2) supports three
versions of the C standard:
"* The original International Organization for Standardization
(ISO) standard of the C language (ISO C89 or C90)
* ISO C90 with amendment 1
* The current ISO C99 (the default standard that GCC uses and that
this article assumes)
Note: This article assumes that you are using the ISO C99
standard. If you specify a standard older than the ISO C99 version,
some of the extensions described in this article may be disabled.
To specify the actual standard that GCC uses, you can use the -std
option from the command line. Use the GCC manual to verify which
extensions are supported in which versions of the standard (see
Resources for a link)."