Course Description

This 3-day C Programming Advanced course fills the gap between an introductory course in C and more advanced application programming. Students write many programs, concentrating on data structures, file I/O, and memory allocation and organization.


Attendance at our C Programming Introduction training course, or equivalent experience.


Who is this course for?

This course is designed for C programmers who need to advance their coding skills.


Course content

The C Development Environment
The cc(1) Command
Include Files
Basic and Derived Data Types in C
Simple C data types
Integral data types
Floating point types
Derived data types
Array data types – single & multi-dimensional
Structure data types
Simple pointer types
Pointers to structures/multiple pointers
Pointers to functions
The const qualifier
Bit operators
Using typedef
Function: Calling, Passing, and Returning Values
Anatomy of a function
Parameter passing – pass by value
Parameter passing – pass by reference
Standard I/O
Standard I/O streams
File access
Formatted I/O
String I/O
File positioning operations
Block I/O
Low Level File I/O
Standard I/O vs system I/O
File access
Direct I/O
File Positioning
Error Handling
Memory Allocation with malloc and calloc
Dynamic memory allocation overview
malloc(), calloc()
realloc(), free()
Structure Pointers
Array of pointers to structures
Memory Organization and the Scope of Variables
Command line arguments (argc, argv)
The memory layout of a C Program
The stack segment
The heap segment
Data Structures - Linked Lists
Array limitations
Linked lists
List operations – formation
List operations – delete
Debugging Techniques
Debugging Techniques
Debugging Hints
Debugging with Pre-Processing Directives
Debug Macro
Symbolic Debuggers
Code Management Techniques
Coding from Pseudo Code
Project Header Files
Project Source Files
Project Tracking (Bookkeeping)