C99
C99 is a major revision of the C Programming Language standard, officially designated as ISO/IEC 9899:1999. Published by the ISO and the IEC, it superseded the original C89 (also known as ANSI C) standard. C99 introduced significant enhancements to the language to better support Numerical Computing and to modernize the syntax for better compatibility with C++ features.
New Language Features
The update introduced several pivotal features, including Inline Functions, which provide a hint to the Compiler to perform optimizations by integrating function code directly into the calling site. It also added Variable-Length Arrays (VLAs), allowing array dimensions to be determined at runtime. To improve memory management and performance, the restrict keyword was introduced to help with Pointer Aliasing analysis.
Data Types and Headers
C99 expanded the standard library with several new headers. The stdint.h and inttypes.h headers were added to provide integer types of specific widths, such as int32_t and uint64_t. Support for Complex Numbers was integrated via complex.h, and a native boolean type was defined in stdbool.h. Furthermore, the long long int type was standardized to provide at least 64-bit integer precision.
Modernized Syntax
Syntax improvements included the adoption of single-line comments using //, the ability to declare variables anywhere within a block, and the introduction of Designated Initializers for structures and arrays. These changes made the language more flexible and expressive for developers working on Embedded Systems and high-performance applications.
Detailed technical specifications are maintained by the ISO Standards committee and the WG14 Working Group.