C is an old programming language. It’s an important starting language in computer engineering since:

  • The language interacts so closely with hardware.
  • It introduces concepts in the context of memory.
  • It requires us to implement functions by hand.

It lacks things like objects and classes, but it does introduce finer control of memory and hardware components. Not to be confused with C++ — which is not a superset of C but closely related.

C versions are expressed by the year of release. The most common versions are C89, C99, and C11.

Language features

Libraries

Tools

Resources

  • Jorengarenar’s blog, for applications and some tips
  • For an introduction to the language:
    • Beej’s Guide to C Programming, by Brian Hall (2023)
    • Modern C, by Jens Gustedt (2021)

Courses