The Basic Seminar on the Programming Language C

In this seminar I teach the ISO C programming language by means of practical examples. For this purpose I refer to the ISO, namely to the ANSI Standard from 1989/1990, which is available on almost every platform supporting C. The ANSI/ISO Standard from 1999 is also described and discussed in its differences to the first one. The differences between prior versions of C - like for instance K&R C or the earlier UNIX version - and ANSI C are also covered. Its favorable runtime behavior and the easy porting of a C compiler on new platforms explain the use of C even nowadays. Because of said reasons ANSI C is often used in the programming of embedded systems as well.

The following subject matters are covered:

  • Preprocessor Instructions
  • Constants
  • Data Types
  • Variables
  • The Principle of Locality
  • Data Types
  • Instructions
  • Control Structures
  • Functions
  • Procedural Programming
  • Function Prototypes
  • Function Prototypes
  • Haeder Files
  • Type Definitions
  • Operators and Expressions
  • Arithmetic Expressions
  • The Arithmetic Operators
  • Bit Manipulations
  • Bitoperators
  • Pointers
  • Structures
  • Enumeration Types
  • Unions
  • Function Pointers
  • Storage Classes in C
  • The Data Segment
  • The Heap
  • The Stack
  • External and Static Linkability
  • The Standard Library
  • I/O Operations
  • Data Accesses
  • Dynamic Memory Allocation
  • The Compiler
  • Compiler Options
  • The Linker
  • Further Tools
  • Structure of C Projects
  • The Interaction between Compiler and Linker
  • Object Files and Libraries
  • Simple Makefiles
  • Close-to-hardware Programming
  • Problems during Concurrent Computing
  • Development of High-performing Software
  • Code Optimization
  • Footprint and Runtime Behavior
  • Methods of Implementation of Status Machines
  • Implementation of a Status Machine with Structures
  • Algorithmic Software Design
  • Data-oriented Software Design
  • Object-oriented Software Design

Any Standard C or C++ Compiler that is ANSI/ISO compatible can be used. The recommended platforms for the course are Windows, Mac OS X, UNIX or Linux systems. The only important thing is that the course participants master simple data operations on the system they use. The seminar can also be adapted to specific subject matter requests and arranged for a specific aspect that is important to you. Thusly ISO C can be examined for example against the background of the development of an application, or in connection with system development in embedded systems as well.

Last modified 07.04.2021