or create  New Account
 
 
 

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