BD Software delivers on-site C++ training, Unix training and Java training.

BD Software delivers on-site C++ training, Unix training and Java training

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.


Courses:

C and C++ Seminars

Java Seminars

Unix-Related Seminars


Clients:

Wal-Mart

Sapient, Inc.

Maxtor

(See full
client list)


BD Software delivers on-site training seminars for programmers in C, C++, Java, Perl and Unix