C Essentials Training
3-day session

Overview
Understanding structural programming
Understanding advance pointer and arrays
Practical labs with GNU gcc compiler, gdb debugger
Duration
Three days - 24 hours (8 hours a day)
50% of lecture, 50% of practical labs.

Trainer
Audience
Professional Software developers
People supporting embedded and medium scale products.

Setup
Linux machine with GNU gcc compiler installed.
© www.minhinc.com
p1
Lecture
Lecture session will be course content presentation through the trainer.
Any source code example related to the topic will be demonstrated, it would
include executing the binaries.
Complete lecture material can be downloaded from
http://www.minhinc.com/training/advance-c-slides.pdf
Labs
Labs session would be completely hands on session where each example
(with example data and execution instruction) would be provided to the
students. Students can verify their results with the results provided in
the material.
Day 1 Morning

© www.MinhInc.com
p2
Day 1 Afternoon

     Lab
Day 2 Morning

© www.MinhInc.com
p3
Day 2 Afternoon

     Lab
Day 3 Morning

Day 3 Afternoon

     Lab
© www.MinhInc.com
p4
C Essentials
C Essenstials- Training Course
Minh, Inc.
DISCLAIMER

Text of this document is written in Bembo Std Otf(13 pt) font.

Code parts are written in Consolas (10 pts) font.

This training material is provided through Minh, Inc., B'lore, India
Pdf version of this document is available at http://www.minhinc.com/training/advance-c-slides.pdf
For suggestion(s) or complaint(s) write to us at sales@minhinc.com

Document modified on May-15-2021 

Document contains 37 pages.
 
Day 1 Morning

  1. Introduction

 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_0
 
  
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_1
 
  
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_2
 
  
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_3
 
  
© www.minhinc.com
p5
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_4
 
  
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_5
 
  
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_6
 
  
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_7
 
  
© www.minhinc.com
p6
Day 1 Morning
  1. Introduction
 
 
Refer: 
http://www.minhinc.com/training/cpp/advance-cpp-slides.php#chap1_8
 
  
Day 1 Morning
  1. Introduction
 
C's type system and error checks exist only at compile-time. The compiled code runs in a stripped down run-time model with no safety checks for bad type casts,bad array indices, or bad pointers. There is no garbage collector to manage memory. Instead the programmer manages heap memory manually. All this makes C fast but fragile.
 
Perl and Java are more "portable" than C (you can run them on different computers without a recompile). Java and C++ are more structured than C.  Structure is useful for large projects. C works best for small projects where performance is important and the programmers have the time and skill to make it work in C. In any case, C is a very popular and influential language. This is mainly because of C's clean (if minimal) style, it's lack of annoying or regrettable constructs, and the relative ease of writing a C compiler. 
© www.minhinc.com
p7