C is used in situations where the speed of code is important by giving the programmer tight control over memory management. Many of the most widely used and most enduring pieces of software even written have written in C. C also is particularly common for programming embedded systems.