Advanced C Programming

4 Day Course
Hands On

This course has been retired. Please view currently available C and C++ Training Courses.


Collapse all

C Standards: A Review (5 topics)

  • K&R1 and STDC style function differences
  • Type qualifiers: const and volatile
  • C99 change
  • Inline functions
  • Limits

The Preprocessor (5 topics)

  • Predefined symbols
  • Conditional compilation
  • Advanced directives
  • Digraphs and Trigraphs
  • Variadic Macros (C99)

Understanding Complex Declarations (3 topics)

  • Reading and writing declarations
  • Using typedefs effectively
  • Using casts

Advanced Pointers (3 topics)

  • Using void pointers
  • Defining and using function pointers
  • Restricted pointers (C99)

Advanced Array Handling (4 topics)

  • Arrays and functions
  • Multidimensional arrays
  • Pointers and arrays
  • C99 Variable Length Arrays

Advanced Structure Issues (5 topics)

  • Initialising Structures
  • C99 changes
  • Bitfields
  • Packing and padding
  • Reading and writing to files

Dynamic Memory Allocation (3 topics)

  • Allocating arrays
  • Allocating structures
  • Error-detection techniques

Process Control (4 topics)

  • Starting a process
  • Returning values
  • Exception processing
  • Environment variables

Other Useful Functions (4 topics)

  • Writing variadic functions
  • v*printf and v*scanf
  • Time-and-date processing
  • Random numbers

Sorting and Searching (3 topics)

  • Survey of techniques
  • Using bsearch
  • Using qsort

Stacks, Queues and Lists (5 topics)

  • Stacks, Queues and Lists
  • Linked-list principles
  • Using recursive functions
  • Implementing a circular list
  • Implementing a self-adjusting list

Binary Trees (2 topics)

  • Using trees for sorted data
  • Insertion and deletion

Future Developments (2 topics)

  • Impact of C++


Delegates must have solid experience of C including structured data types (struct and array); declaration and use of pointers; function declaration, definition and use; call by value; call by pointer; dynamic memory allocation (i.e. malloc and free); multiple source file projects (requiring project files or makes files). It is recommended delegates have between three and six months of concentrated C programming experience. The course will also benefit self-taught C programmers wishing to gain a formal education in the language.

Course PDF