C programming fundamentals

The C programming language can be used to develop both system software and application software, on any platform (Linux/Unix, Windows, Mac, embedded systems, mainframe). The popularity of C is explained by its flexibility and efficiency, its simple way to address low-level functions, and the fact that programs can easily be transferred between platforms. Also, lots of highly efficient and often even open-source software libraries have been written in C and can thus be easily called from other C programs.

This course will cover the syntax and structure of the ISO/ANSI definition of the C language (more specifically C99 and C11). The course also covers the C preprocessor, debugging tools (gdb), and build tools (like configure and make).

At the end of the course, students will know

  • the basics of ANSI C, its data types and pointers, and will be able to write C applications;
  • the most important standard C libraries, with functionality for input/output, string manipulation, and memory management.


No public sessions are currently scheduled. We will be pleased to set up an on-site course or to schedule an extra public session (in case of a sufficient number of candidates). Interested? Please let us know.

Intended for

Application programmers wanting to write or maintain C programs.


Knowledge of programming structures and algorithmic concepts is required. Knowledge of an other programming language might be an advantage.

Main topics

  • Basic syntax • program structure • elementary data types • operators • expressions • strings.
  • comparison operators and flow control (while/for/do/if/switch).
  • Arrays • pointers • structures • union • bit fields • enum • bitwise operators
  • Using pointers to modify arguments • strings and common string functions • arrays of pointers
  • Functions and prototyping • identifier scope and storage class • header files • recursivity.
  • The C preprocessor • working with macros • conditional compilation.
  • Getting and displaying text • working with files
  • Using standard input and standard output
  • Linked lists • function pointers • "hook" functions
  • Dynamic memory allocation

Training method

Theory alternated with practical exercises, at choice on Linux, Unix, or Windows.


3 days.

Course leader

Peter Vanroose.