0845 757 3888 · info@xpertise.co.uk

On-line training course catalogue

C Programming for Experienced Programmers (Premium Series)

Type of course: Classroom | Premium series

Course details
Fee£1900
Days5
Course code CCEXPP


We currently do not have public dates scheduled for this course.
If you have a requirement for this course, please contact us for the latest course information.

Print this page | Download as Word document |

Overview

This course is designed to teach ANSI Standard C to experienced programmers who are familiar with either C++ or Java or have already done some basic C programming or taken an introductory C training course.  This is not an introductory course, but it will cover the main C topics at an accelerated pace before getting into the more advanced features of the C language and its usage.  It will describe some of the key differences in C compared with C++ and Java to put existing programming knowledge into context.

The course explores concepts and syntax through lectures, discussion and hands-on lab exercises.

 The course is based on ANSI standard C, revision C90, although a number of extensions in the 1994 addition will be covered where relevant.  The course teaches operating system independent C except for Appendix B which will be covered depending on the background and requirements of the delegates.  The labs will be run on Windows and will utilise the GCC compiler to provide an environment which will be familiar to delegates coming from a Windows or Unix/Linux background.  

 

Prerequisites

Practical experience of programming in C++ or Java or a solid introductory overview of C.

 

Course outline

1. Language overview and differences/similarities with Java and C++

  • DATA TYPES, VARIABLES AND OPERATORS Integers, characters, floating point; Declaring variables; Arithmetic operators; Logical operators; Bitwise operators; Precedence and associativity; Casting and type conversions
  • CONTROL FLOW if/else statements; switch statements; do and while loops; The for loop; goto; break and continue
  • FUNCTIONS Declaring functions; Function prototypes; Using header files; Passing arguments; Return values; Compile/link model
  • ARRAYS Array representation in memory; Array declaration and access; Multi-dimensional arrays
  • POINTERS What are pointers? Creating pointers; Assigning and dereferencing pointers 
  • STRINGS Strings as character arrays; Initializing strings
  • USER-DEFINED TYPES Enums; Structs; Declaring and using structs; Passing structs to functions; Typedef 
  • I/O printf; Format specifiers; scanf
  • THE PREPROCESSOR FUNDAMENTALS Preprocessor directives; Defining and using constants; Conditional compilation; Preprocessor macros

2. Pointers and Arrays

  • Pointer arithmetic
  • void pointers
  • Idiomatic use of pointers
  • Pointers-to-pointers
  • Arrays and pointers
  • Strings and pointers
  • Passing arrays to functions
  • Dynamic memory allocation
  • Proper use of malloc and free – Other allocations functions (calloc, realloc) – allocating arrays and structures

3. Command-line arguments

4. Custom types

  • Using typedef with structs
  • Pointers and structs
  • Self-referential structs
  • Bitfields
  • Unions

5. I/O

  • Opening files
  • Reading and writing files
  • Binary and text files
  • Random access I/O
  • Directory operations

6. The Standard Library

  • What is in the library
  • What isn’t in the library : comparison with Unix API  comparison with Windows API
  • String manipulation using the str functions
  • Math functions
  • Date and time functions
  • Other Standard C functions
  • Writing variadic functions
  • Other functionality : on-local goto

7. Program organization

  • Program layout : text / data / stack / heap
  • Preprocessor including the null directive, proper use of header files, minimizing recompilation, Conditional inclusion guards, #define and #undef, Using macros properly, Stringifying and token pasting, Predefined symbols, other directives (#line, #pragma, #error)
  • Storage classes – auto, register, extern and static
  • Linkage – internal, external and none
  • Qualifiers – volatile and const
  • Atomic operations
  • Alignment
  • Sequence points

8. Error handling and status reporting

  • Using assert()
  • errno
  • perror()
  • Returning values from programs

9. Function pointers

  • Declaring and using function pointers
  • Using lookup tables

10. Implementing data structures

  • Linked lists
  • Queues
  • Hashing
  • Stack
  • Binary Tree
  • Sorting
  • Searching
  • Using recursive functions

Appendix A: Writing Portable Programs

  • Data Representation
  • Characters and Strings
  • Limits to Observe
  • Expression Evaluation
  • Library Issues

 

 

 

Xpertise – C Programming for Experienced Programmers (Premium Series) training courses

Xpertise provides C Programming for Experienced Programmers (Premium Series) training courses from 7 UK locations: in Altrincham Manchester, Hinckley East Midlands, Leeds Yorkshire, London King William Street, Maidenhead Berkshire, Malmesbury Wiltshire and Washington Tyne & Wear – and at 44 partner locations nationwide.


Xpertise Training reserves the right to improve the specification and format of its courses for the benefit of its customers without notice to the customer.