

.. index:: C language

**********
C language
**********

This chapter details the C language implementation, supporting the
ISO/IEC 9899:1999 standard (C99).

Overview
========

For those accustomed to older C versions, C99 introduces several useful
features:

* Declarations and statements can be mixed in the same block scope

* A declaration can be placed in the initialization expression of a
  ``for`` loop

* The ``bool`` datatype, available as ``_Bool`` or as ``bool`` after
  the ``stdbool.h`` header file has been included

* The ``long long`` data type

* C++ style comments

* Use of incomplete array at end of a structure

* Variable length arrays

* Initialization of compound objects by the use of designated
  initializers improve readability

Extensions
==========

Language extensions are always enabled, encompassing various qualifier
keywords, intrinsic functions, and additional library features.
