C Tutorial C History
The C Language
C History

Euclid’s Algorithm in C
Euclid on the PDP-11
Pieces of C
C Types
Struct bit-fields
Code generated by bit fields
C Unions
Layout of Records and Unions
C Storage Classes
malloc() and free()
Dynamic Storage Allocation
Simple Dynamic Storage Allocation
malloc() and free() variants
Fragmentation and Handles
Automatic Garbage Collection
Lazy Logical Operators
The Switch Statement
setjmp/longjmp: Sloppy exceptions
Nondeterminism in C




  • Developed between 1969 and 1973 along with Unix

  • Due mostly to Dennis Ritchie



  • Designed for systems programming

    Operating systems Utility programs Compilers



  • Evolved from B, which evolved from BCPL



Original machine (DEC PDP-11) was very small:

24K bytes of memory, 12K used for operating system Written when computers were big, capital equipment Group would get one, develop new language, OS



Many language features designed to reduce memory

  • Forward declarations required for everything

  • Designed to work in one pass: must know everything

  • No function nesting



PDP-11 was byte-addressed  

Now standard 

Meant BCPLs word-based model was insufficient


Contact for more learning: webmaster@freehost7com