Advanced C
Course #WD02
5 Days
Benefits:
This course covers advanced features of C and the use of C in more advanced applications. Approximately 50% of class time will be spent in hands-on workshops and labs.
Target Student:
Programmers who are already familiar with the basics of C, but who want to "round out" their knowledge of the language and become more proficient in their programming.
Prerequisites:
Introduction to C Programming (WD01), or equivalent experience. A minimum of three months C Programming experience is suggested.
Course Outline:
Review of C
▪ Variables, declarations, types
▪ Limits, conversion and overflow
▪ Constants
▪ Storage classes, initialization, scope
▪ Operators and flow of control
▪ Functions and the standard library
▪ The pre-processor
▪ Arrays and pointers
▪ Command line arguments
▪ Structures and files
Structured Design
▪ Structured problem solving
▪ The tools of structured design
▪ Black boxes
▪ The structure chart
▪ The data flow diagram
▪ The data dictionary
▪ Flow charts and pseudo-code
▪ The transition to source code
More Complex Structures
▪ Structures with pointers and arrays
▪ Nested structs, arrays of structs
▪ Pointers to structures
The Cast Operator
▪ Type coercion
Dynamic Memory Allocation
▪ Using malloc and calloc
▪ The sizeof operator
▪ Allocating memory - Example
Bit Manipulation
▪ Bitwise operators
▪ Bit fields
Enumerations
▪ Enumeration constants
Recursion
▪ Recursive functions
▪ Recursive algorithms
▪ When to use recursion
▪ Self-referential structures
▪ Linked lists
▪ Linked lists and memory allocation
▪ Stacks and queues
▪ Doubly-linked lists and deques
typedef
▪ New names for existing types
▪ New names for array types
▪ New names for derived types
▪ Incomplete data types
▪ When to use typedef
Unions
▪ One variable, more than one type
▪ Embedded unions
Pointers to Functions
▪ Declaring pointers to functions
▪ Using pointers to functions
Tree Structures
▪ Binary trees
▪ Balanced binary trees
▪ Multi-way trees
The Operating System Interface
▪ System calls
▪ Unix system calls
▪ Common Unix system calls
▪ The file system in memory
▪ Additional Unix file system calls
▪ The creation of a Unix process
▪ The exec system calls
▪ The fork system call
▪ Pipes
▪ Error handling