Advanced C

call us now - 0845 757 3888
  • view dates / book course
  • course description
  • blogs

Print course outline | Download Word document | Link to page: http://www.qa.com/LGCADV1

Course dates

We currently do not have public dates scheduled for this course.
Please contact us for details on a closed event for your company or to be added to the public course waitlist.

Print course outline | Download Word document | Link to page: http://www.qa.com/LGCADV1

Overview

This course is designed for the practising software developer and allows delegates to gain a better understanding of the language, run-time library, and software engineering techniques available with the C language.

‘Advanced C’ increases delegate’s knowledge and understanding of the language, including the recent ISO 9899:1999 (C99) standard changes, and helps delegates to gain experience in areas of C that previous work may not have covered. Delegates will also be better equipped to write and maintain large C programs, and will also gain a better understanding of the way the language works and is implemented. 

Prerequisites

  • Between three and six months of concentrated C programming experience
  • Experience of structured data types
  • Experience of the declaration and use of pointers
  • The course will also benefit self-taught C programmers wishing to gain a formal education in the language. 

Delegates will learn how to

  • Read and write complex data declarations and type definitions
  • Use advanced pointer techniques to construct and work with complex data structures
  • Use advanced standard library functions, including process control, searching and sorting
  • Handle memory allocation
  • Exploit features of C99

Course Outline

Chapter 1: C Standards

  • Review of C standards
  • K&R1 and STDC functions
  • C99 inline functions
  • Enumeration
  • const, volatile, Boolean, and floating point types
  • Limits

Chapter 2: The Preprocessor

  • Predefined macros
  • Conditional compilation
  • Advanced directives (including assert)
  • Trigraphs and C99 digraphs
  • C99 Variadic macros

Chapter 3: Declarations

  • Reading and writing declarations
  • Using typedefs effectively
  • Using casts

Chapter 4: Advanced Pointers

  • Levels of indirection
  • Void pointers
  • Defining and using function pointers
  • C99 restricted pointers

Chapter 5: Advanced Arrays

  • Arrays and functions
  • Pointers and arrays
  • C99 Variable Length Arrays
  • memset

Chapter 6: Arrays of Arrays

  • Declarations
  • Initialisation
  • Arrays of arrays as function arguments

Chapter 7: Advanced Structures

  • Declaring and defining structures
  • C99 changes
  • Bitfields
  • Packing and padding
  • Reading and writing structs to files

Chapter 8: Dynamic Memory Management

  • Allocating arrays
  • Allocating structures
  • Error detection and debugging techniques
  • Writing your own error detection library

Chapter 9: Standard Library – Process Control

  • Running another process
  • Process termination
  • Exception handling (setjmp/longjmp)
  • Environment variables

Chapter 10: Standard Library – Useful Functions

  • Calling conventions
  • Writing variadic functions
  • Date and time functions
  • Random numbers

Chapter 11: Sorting and Searching

  • qsort
  • Comparison functions
  • Indirect sorting (pointers)
  • bsearch

Chapter 12: Linked Lists

  • Linked list principles
  • Using recursive functions
  • Implementing a circular list
  • Implementing a self-adjusting list

Chapter 13: Binary Trees

  • Binary tree principles
  • Using trees for sorted data
  • Insertion
  • Deletion

 

Print course outline | Download Word document | Link to page: http://www.qa.com/LGCADV1

Related blogs

vSphere 5 CLI reference poster

Posted by Bryan O'Connor on 24 May 2012

The vCAP-DCA 5 is coming, and having a look at the blue print, there will be command line and as such the reference poster will be a good resource for revision

Connection Options for the vMA (VMware Management Assistant)

Posted by Bryan O'Connor on 23 May 2012

This article covers the various conn-options for the vMA

Let’s have a Fling

Posted by Bryan O'Connor on 22 May 2012

Not the type you thought, but an offering from VMware

Windows 7 Native Boot Adding the VHD to Bare Metal

Posted by Andrew Mallett on 21 May 2012

I have written before on the native boot feature of Windows 7 where it can boot to a VHD, Virtual Hard Drive. In this blog though we look at adding in a VHD to a completely clean disk with no OS ....

Microsoft Virtual Academy

Posted by Bryan O'Connor on 21 May 2012

Been on a Microsoft Offical Course and fancy some complentary information, have a look at Microsoft Virtual Academy.

See all related blogs

 
top of page
  • Apple logo
  • AppSense logo
  • cisco logo
  • citrix logo
  • compTIA logo
  • ec council logo
  • IBM logo
  • lpi logo
  • microsoft gold logo
  • novell logo
  • oracle logo
  • redhat logo
  • SAP logo
  • symantec logo
  • vmware logo
  • cisco logo