C
Foundational systems language for OS kernels, embedded firmware, and performance code.
Overview
C is a general-purpose, imperative programming language created in the 1970s by Dennis Ritchie at Bell Labs. Originally developed as a successor to the B programming language, C was designed to provide relatively direct access to CPU architecture features while maintaining cross-platform portability. It has been standardized since 1989 by ANSI and subsequently by ISO/IEC.\n\nThe language is characterized by its minimal runtime overhead, low-level memory access via pointers, and efficient compilation to machine instructions. C supports structured programming with functions, control flow constructs (if, for, while, switch), and user-defined types. Despite its age, C remains one of the most widely used programming languages, ranking consistently in the top two on the TIOBE index since 2000.\n\nC is extensively used for implementing operating system kernels, device drivers, protocol stacks, and embedded systems. It runs on platforms ranging from supercomputers to microcontrollers, with compilers available for virtually all modern computer architectures and operating systems.
Key features
- Imperative procedural paradigm
- Static weak typing
- Low-level memory access via pointers
- Structured programming support
- Minimal runtime overhead
- Efficient machine code compilation
- Cross-platform portability
- Standard library with I/O and math functions
- Preprocessor for macros and conditional compilation
- Function pointers for runtime polymorphism
- Minimal runtime overhead and efficient execution
- Direct hardware access via pointers
- Highly portable across platforms and architectures
- Extensive compiler support (GCC, Clang, MSVC, etc.)
- Small language core with flexible standard library
- Decades of proven reliability in critical systems
- Rich ecosystem of libraries and tools
- Manual memory management prone to errors
- Weak type system allows implicit conversions
- No built-in object-oriented features
- No garbage collection in standard language
- Requires careful pointer handling
- Limited string handling compared to modern languages
- Steep learning curve for memory management concepts
Best for
Alternatives
More Language
Compare allThe web's core programming language for interactive pages, apps, and full-stack development.