|
Advanced 'C' Programming
Course Summary
This course is designed to pick up where our introduction to C programming class left off..Audience:
Unix Systems and Application Programmers, and System Administrators.
Prerequisite Knowledge:An understanding of basic C language programming, or our Introduction to C programming class.Terminal Objectives:
Upon successful completion of this course the student will be able to:
Write, compile, execute and debug 'C' language programs using
the following:
- Good program structure
- Pointers, arrays and dynamic allocation
- function pointers
- rules
- typedefs
- enumerations
- unions
- interrupts
- multi threading
- The linker
- Memory issues
- Libraries
Course Length:2 Days with extensive exercises
Course Outline:
- Introduction
- Program Structure
Importance of good structure
Quality and style
- Pointers, Arrays & Dynamic Allocation
- Arrays & pointers; compatibility and incompatibility
- Function Pointers
Basics
Callbacks
State machine
- Unscrambling Declarations
Rules
Using typedef
- Enumerations, Structures and Unions
Enum vs. #define
Struct layout
Uses of union
- Interrupts
Hardware interrupt models
Software interrupts
- Multi-Tasking (Multi-Threading)
Terminology
Advantages and disadvantages
Intertask Communication & synchronisation
- The Linker
Memory sections
- Start-up, Runtime and the Stack
What happens before main
What is happening at runtime
Estimation of stack requirements
- Dynamic Memory
Malloc, calloc and realloc
Variable sized structures
Dangers
- Memory Management and Protection
Memory protection
MMU
Segmentation and paging
- Writing Safer C
MISRA-C Guidelines
- OOP with C
Object-based and objectoriented
Classes, inheritance and polymorphism
Associations and aggregation
- Number Crunching
Floating-point and fixed-point number systems
IEEE Standard 754
- The Standard Library
Major issues
- C99
Summary of significant new features
|