
@c This is part of The GNU C Reference Manual
@c Copyright (C) 2007 Free Software Foundation, Inc.
@c See the file gnu-c-manual.texi for copying conditions.

@node Preface
@unnumbered Preface
@cindex preface

This is a reference manual for the GNU C programming language: the
C programming language as implemented by the GNU C compiler.

GCC supports several variants of C; this manual ultimately aims to
explicitly document three of them:

@itemize

@item The original 1989 ANSI C standard, commonly known as ``C89''
@item The revised 1999 ISO C standard, commonly known as ``C99''
@item The current state of GNU extensions to standard C

@end itemize

By default, GCC will compile code as C89 plus GNU-specific extensions.  Much
of C99 is supported; once full support is available, the default compilation
dialect will be C99 plus GNU-specific extensions.  (Note that some of the
GNU extensions to C89 ended up, sometimes slightly modified, as standard
language features in C99.)

@c Except as specified, this manual describes C89.  Language features that are
@c available only in C99 or as a GNU extension are labelled as such.

Presently, this manual describes C89 only.  Descriptions of C99 and GNU extensions
will be included in future releases, labeled as such alongside the original
C89 material.  While most users of GCC are free to use the latest and greatest
additions to the compiler, some users must continue to use older versions of
GCC.  (For example, avionics programmers cannot switch to newer compilers on
a whim, and indeed often use the same compiler for years until a new version
is approved for use.)  For this reason, we feel that a clear distinction
between C dialects will be useful to our readers.

The C language includes a set of preprocessor directives, which are used for
things such as macro text replacement, conditional compilation, and file
inclusion.  Although normally described in a C language manual, the GNU C 
preprocessor has been thoroughly documented in @cite{The C Preprocessor},
a separate manual which covers preprocessing for C, C++, and Objective
C programs, so it is not included here.

A number of people have contributed to this manual.  Most of the text
was written by Trevis Rothwell.  Other contributors, who have
offered editing, proofreading, ideas, and/or help with typesetting or
administrative details, include: Karl Berry, Robert  Chassell,
Lisa Goldstein, Robert Hansen, Jean-Christophe Helary, Joe
Humphries, J.@tie{}Wren Hunt, Adam Johansen, Steve Morningthunder,
Richard Stallman, J.@tie{}Otto Tennant, Ole Tetlie, and
T.F. Torrey.

Please send bug reports and suggestions to @email{gnu-c-manual@@gnu.org}.
