- A standard set of lexical elements
- A wide variety of types for data objects, including integer and floating point constants and variables, pointers to data locations in memory, arrays of identically types saata, structures and unions with members of different data types
- The ability to group independent code blocks into named functions
- A large set of operators used to form expressions, including bit-wise operators
- A simple method of declaring data objects and functions
- Several preprocessor directives to expand the functionality of the language
- Numerous library functions to handle many common programming tasks
Integrity: per concurrent use.