On-Site Training Seminar:
Advanced C Programming
Details of this C Training
Who Should Attend:
- Application programmers, systems programmers, embedded systems programmers, and technical personnel who wish to acquire programming expertise in C.
Prerequisites:
At least six months of C programming experience.
Format:
Five days of training, alternating between lecture and hands-on lab exercises.
Supplied Materials:
- Media containing source code and executables for all sample programs and exercises used in the course
- The Course slides themselves are also provided in PDF format
Course Outline:
1. C Language Dialects
- Classic C vs. Standard C
- C89 vs. C99
2. Terminology
- Declarations and Definitions
- Parameters and Arguments
- Function Prototypes
- Translation Units
- Scope and Linkage
- Non-Portable Behaviors
3. Understanding C Syntax
- Phrases and Tokens
- Scanning and Parsing
- Grammatical Notations
- Writing a Scanner
4. Programming Style
- Basing Style on Principles Rather than Whim
- Spacing and Indenting
- Spelling and Naming
- Reserved Identifiers
5. The Structure of Declarations
- Declaration Specifiers and Declarators
- Parsing Declarations
- Recursion vs. Repetition
6. Why So Many Data Types?
- Storage Economy
- Compile-Time Error Detection
- Simpler Programming
- "Typesafe" C
7. Arithmetic Types
- Integer, Character and Boolean Types
- Sizes, Difference and Wide-Character Types
- Real and Complex Floating Types
- Tags vs. Type Names
- Enumerations
8. Lvalues and Rvalues
- Lvalues and Rvalues in Assignments
- Lvalues in Other Expressions
- Data Storage for Rvalues
9. Symbolic Constants and const
- Object-Like Macros and Enumeration Constants
- const Objects and Non-modifiable
Lvalues
- const as a Constraint on Function
Behavior
- Placing const in Declarations
- const as a Promise
- Qualification Conversions
- "Casting Away" const
10. Arrays and Pointers
- Arrays Really Are Arrays
- Momentary Conversions
- Telling Arrays From Pointers
- Array Parameters
- Multi-Dimensional Arrays
- Array Initializers
- Slicing Arrays
11. Literals and Strings
- The Different Forms and Types of Literals
- Literal Pooling
- Command-Line Arguments
12. Preprocessing With Restraint
- Why Use Symbolic Constants?
- sizeof Expresions
- Function-Like Macros
- Macro Pitfalls
- Inline Functions
- Redefining Macros
- Predefined Macros
- Stringizing and Pasting Operators
- Debugging with Assertions
13. Storage Duration and Linkage
- Storage Classes
- Object Lifetimes
- Static and Automatic Duration
- Fixed- and Variable-Length Arrays
- Allocated Storage Duration
- Linkage
- Separate Compilation
- Tentative Definitions
14. Structure and Incomplete Types
- void
- Ellipsis Parameters
- Pointer to void
- Accessing Structure Members
- Member Alignment and Padding
- Abstract Types
- Mutually-Referential Types
- Incomplete Types
15. Data Structures
- Singly-Linked Lists
- Iteration vs. Recursion
- Ordered Lists
- Queues
- Doubly-Linked Lists
- Binary Trees
Home |
Courses |
Tools |
Resources
Clients |
Successes |
Contact |
Site Map |
Links |
About Us
All text and images on this website are Copyright © 2001-2003 BD Software. All rights reserved.
|