|
(703) 246-9100 Northern Virginia (804) 285-5830 Central Virginia (757) 420-3810 Tidewater Area (800) 294-7497 Toll Free (804) 285-3722 Fax |
Duration: 5 days
This is an intensive introduction to ANSI C programming using the GNU C
compiler. At the end of the course attendees should be reasonably confident in reading and writing C programs and have a good
practical understanding of advanced topics such as the use of C pointers , the relationship between pointers and arrays, as well as
dynamic memory allocation and memory management. In addition, they will be able to understand makefiles and version control using RCS
and CVS.
Throughout, the course will emphasize a disciplined and structured approach to C programming. Debugging and code testing techniques will also be
covered extensively, including the use of the GNU debugging tools.
The course is not based on any particular Integrated Development Environment (IDE), and adopts a more traditional approach where
files are created using a suitable editor (such as EMACS) and programs are compiled either by issuing commands at the
command line,
or by invoking make on an appropriate makefile.
Who Needs to Attend:
The course is for experienced programmers who will be developing applications in
C++, predominantly in a Unix or Linux environment.
Prerequisites:
Attendees are expected to have some programming experience.
You will learn to:
Master the GNU C compiler
Learn both the syntax and usage of C
Enter the exotic world of dynamic data structures and algorithms
Be able to save data to files and read data from files
Understand the intricacies of makefiles and make
Appreciate the need for version control and be able to work with RCS and CVS
Master the techniques for writing well structured modular code in C
Know how to use the GNU debugger
Hands-on Exercises:
In addition to the major exercises listed below, the course includes numerous mini-challenges and code examples for private study.
Compiling a simple C program
Compiling an application containing several C modules (.c files)
Creating data structures and applications that use them
Traversing and processing information in one dimensional and multi-dimensional arrays
Finding your way round the GNU documentation and help manuals
Reading and writing text and binary files
Creating and using indexed data structures
Course Outline
First steps
How C became
Getting to know the GNU C compiler
The basic anatomy of a C program
Data types, operators and expressions (the basics)
base data types and their sizes
constants and declarations, variable names , arithmetic operators
relational and logical operators
increment and decrement operators, assignment operators, operator precedence
expressions, casting and type conversion
Program flow control
if – else, switch, while , do-while and for-loops
statements and blocks
Functions
functions and function prototypes
returning values from functions
external variables and scope rules
static variables, call by value and recursion
Pointers and arrays
pointers and addresses, pointers as arguments to functions, pointer arithmetic
arrays, the relationship of pointers and arrays, arrays of pointers – their uses and initialization
how C deals with multi-dimensional arrays
strings and string functions
Structures
fundamentals of structures, arrays of structures, pointers to structures
passing structures as arguments to functions
returning structures as return values from functions
using pointers to structures to pass values to a function and return values from a function
typedef and its uses in developing well structured and maintainable code
An introduction to data structures and algorithms
sorting arrays of records, allocating and freeing memory (malloc and free)
linked lists and queues, indexing (table lookup, binary trees, hashing)
Input-output
Standard input and standard output
Formatted output – printf
Formatted input – scanf, The dangers of scanf
File access and file I/O
An overview of input-output in a windowing environment
Further topics
The MACRO pre-processor and how to use it wisely
Unions, Bit fields
Date and Time functions in the C Standard Library
Diagnostics-the assert macro
Makefiles, Libraries, RCS and CVS
Simple make files, MACROS in make files, Recursive makefiles
Use of dummy targets
Building and using libraries
The importance of version control
RCS and CVS
Unique Training Solutions for Unique Clients - Expanding skills today to meet the challenges of tomorrow 2/25/2003