The C/C++ Language Reference describes the syntax, semantics, and IBM implementation of the C and C++ programming languages. Syntax and semantics constitute a complete specification of a programming language, but complete implementations can differ because of extensions. The IBM implementations of Standard C and Standard C++ attest to the organic nature of programming languages, reflecting pragmatic considerations and advances in programming techniques, which are factors that influence growth and change. The language extensions to C and C++ also reflect the changing needs of modern programming environments.
The aims of this reference are to provide a description of the C and C++ languages outside of any comprehensive historical context, and to promote a programming style that emphasizes portability. The expression Standard C is a generic term for the current formal definition of the C language, preprocessor, and run-time library. The expression is ambiguous because subsequent formal definitions of the language have appeared while implementations of its predecessors are still in use. This reference describes a C language consistent with the C89 language level. To avoid further ambiguity and confusion with K&R C, this reference uses ISO C to mean Standard C, avoiding the term Standard C, and the term Classic C to refer to the C language plus the generally accepted extensions produced by Brian Kernighan and Dennis Ritchie (K&R C) that were in use prior to ISO C. The expression Standard C++ is unambiguous because there has been only one formal definition of the language.
The focus of this book is on the fundamentals and intricacies of the C and C++ languages. The availability of a particular language feature at a particular language level is controlled by compiler options. Comprehensive coverage of the possibilities offered by the compiler options is available in ILE C/C++ Compiler Reference.
The C and C++ languages described in this reference are based on the following standards:
The C++ language described in this reference is consistent with
Standard C++ and documents the features supported by the IBM
C++ compiler.
The depth of coverage assumes some previous experience with C or another programming language. The intent is to present the syntax and semantics of each language implementation to help you write good programs. The compiler does not enforce certain conventions of programming style, even though they lead to well-ordered programs.
A program that conforms strictly to its language specification will have maximum portability among different environments. In theory, a program that compiles correctly with one standards-conforming compiler will compile and execute correctly under all other conforming compilers, insofar as hardware differences permit. A program that correctly exploits the extensions to the language that are provided by the language implementation can improve the efficiency of its object code.
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.