Introduction to the Course: syllabus; what
is systems programming; why it is useful to know the C
programming language; getting started: a very first example; using
the compiler; a very simple Makefile.
Data Structures: Aggregate types; structures and
unions; enumerations; type definitions; initializers for structures
and arrays; nested structures, multidimensional arrays, and other
non-trivial types. Dynamic memory allocation.
More details on the build process;
the pre-processor; multi-file projects; compilation units; symbols;
shared declarations; the pre-processor; the linkers; modularization
and information hiding in C.
An in-depth look at expressions and
the execution model: operator precedence; type conversions; the
assignment statement; the execution model: evaluation order;
sequence points.