ISO/IEC 9899:2011 specifies the form and establishes the interpretation of programs written in the C programming language.It specifies

the representation of C programs;

the syntax and constraints of the C language;

the semantic rules for interpreting C programs;

the representation of input data to be processed by C programs;

the representation of output data produced by C programs;

the restrictions and limits imposed by a conforming implementation of C.

ISO/IEC 9899:2011 does not specify

the mechanism by which C programs are transformed for use by a data-processing system;

the mechanism by which C programs are invoked for use by a data-processing system;

the mechanism by which input data are transformed for use by a C program;

the mechanism by which output data are transformed after being produced by a C program;

the size or complexity of a program and its data that will exceed the capacity of any specific data-processing system or the capacity of a particular processor;

all minimal requirements of a data-processing system that is capable of supporting a conforming implementation.

ISO/IEC 9899:2011 is designed to promote the portability of C programs among a variety of data-processing systems. It is intended for use by implementers and programmers.