C Programming
About the Course/Course Objective
C is one of the most widely used and user friendly programming language. It is faster than any other programming language. The main features of C language are simple set of keywords, low-level access to memory and clean style.
Learning C programming has lot of advantages:
• You will be able to read and write codes for a large no. of platforms varying for micro controllers to advanced scientific systems.
• If you learn C, learning C ++ becomes easier.
Syllabus
C Programming
1) Getting Started
Brief Introduction
Program
ming Language
About C Programming
C Character Set
Constants, Variables & Keywords
Constants in C
Variables in C
Writing a C Program
Instructions and Assignments
Basic Operators in C Programming
2) The Decision Control Structure
Decisions Control Structure & the If Statement
The if-else Statement
Use of Logical Operators
Different types of Operators
Points to remember
3) Loop Control Structure
Loops and the While loop
While Loop
For Loop
Operators in Loop
The Odd Loop
Break Statement
Continue Statement
Do-while loop
Tips to remember
4) Case Control Structure
Decisions using switch
The Tips and Traps
Switch versus if-else Ladder
The goto keyword
5) Functions and Pointers
About Functions
Passing Values between Functions
Scope Rule of Functions
Calling Convention
One Dicey Issue
Advanced Features of Functions
Function Declaration and Prototypes
Call by Value or Call by Reference
An Introduction to Pointers
Pointer Notation
Function Calls
Basics of Call by value and call by reference
Conclusions
Recursion
Recursion and Stack
Adding Functions to the Library
6) Data Types Revisited
Data type
Integer number variables
Integers, signed and unsigned
Chars, signed and unsigned
Floats and Doubles
Issues related to Data types
Storage Classes in C
Automatic Storage Class
Register Storage Class
Static Storage Class
External Storage Class
To study the Ground rules for the Storage Class
7) The C Preprocessor
Features of C Preprocessor
Preprocessor and Macro Directives
Macros with Arguments and Macros versus Functions
Various Directives
8) Arrays
What are Arrays?
Usage of Arrays
Pointers and Arrays
Passing an Entire Array to a Function
Two Dimensional Arrays
Initializing a 2-Dimensional Array
Memory Map of a 2-Dimensional Array
Pointers and 2-Dimensional Arrays
Pointer to an Array 295
Passing 2-D array to a Function
Array of Pointers
Three Dimensional Array
9) Pupating on Strings
What are Strings?
Pointers and Strings
Standard Library String Functions
Two-Dimensional Array of Characters
Array of Pointers to Strings
Limitations of Array of Pointers to Strings
10) Structures
Why Use Structures?
Declaring a Structure
Accessing Structure Elements
Array of Structures
Additional Features of Structures
Uses of Structures
11) Console Input/output
Types of I/O
Formatted Console I/O Functions
sprintf( ) and sscanf( ) Functions
Unformatted Console I/O Functions
12) File Input/Output
Data Organization
File Operations
Opening a File
Reading from a File
Trouble in Opening a File
Closing the File
Counting Characters, Tabs, Spaces
A File-copy Program
Writing to a File
File Opening Modes
String (line) I/O in Files
The Awkward Newline
Record I/O inFiles
Text Files and Binary Files
Record I/O Revisited
Database Management
Low Level Disk I/O
A Low Level File-copy Program
I/O Under Windows
13) More Issues in Input/output
Using argc and argv
Detecting Errors in Reading/Writing
Explanation
Standard I/O Devices
I/O Redirection
Redirecting the Output
Redirecting the Input & Both Ways at Once
14) Operations on Bits
Binay System & Bitwise Operators
Bitwise AND Operator
Bitwise OR Operator
Bitwise XOR Operator
One's Complement Operator
Shift Operator
The showbits( ) Function
15) Miscellaneous Features
Enumerated Data Type and its uses
Understanding with a Program
Renaming Data Types with typedef
Typecasting
Bit Fields
Pointers to Functions
Functions Returning Pointers
Functions with Variable Number of Arguments
Unions & Union of Structure
16) Under Windows 535
Uses of Windows
Integers
The Use of typedef
Pointers in the 32-bit World
Memory Management & Device Access
DOS Programming Model
Windows Programming Model
Event Driven Model & Windows programming
The First Windows Program
Hungarian Notation
17) Windows Programming
The Role of a Message Box
Here Comes the windows
More Windows
A Real-World Window
Creation and Displaying of Window
Interaction with Window
Reacting to Messages
Program Instances
18) Graphics under Windows
Graphics fundamentals
Device Independent Drawing
Hello Windows program
Drawing Shapes
Types of Pens
Types of Brushes
Code and Resources
Freehand Drawing, the Paintbrush Style
Capturing the Mouse
Device Context, a Closer Look
Displaying a Bitmap
Animation at Work
WM_CREATE and On Create( )
WM_TIMER and On Timer( )
Points to remember
19) Interaction with Hardware
Hardware Interaction
Hardware Interaction, DOS Perspective
Hardware Interaction, Windows Perspective
Communication with Storage Devices
The Read Sector( ) Function
Accessing Other Storage Devices
Communication with Keyboard
Dynamic Linking
Windows Hooks
Caps Locked, Permanently
Mangling Keys
Key Logger
20) Under Linux
What is Linux
C Programming Under Linux
The ‘Hello Linux’ Program
Processes
Parent and Child Processes
More Processes
Zombies and Orphans
21) More Linux Programming
Communication using Signals
Handling Multiple Signals
Registering a Common Handler
Blocking Signals
Event Driven Programming
22) Memory Mapping
Introduction to Memory Map
Memory Organization
Segmentation
Loading OS & Booting Process
The resident >and transient memory area
Program memory area at run time
Memory representation of data & function objects
23) C Traps & Pitfall
Introduction
Lexical pitfalls
Exceptions, String & characters
Understanding Declaration
Exceptions in Operators' precedence
Use of Semicolons
The Switch statement
Calling functions
The Dangling else problem
Linkages
External Types
Expression evaluation sequence
Issues related to actual parameters
Eshew Synecdoche
Library Function
Preprocessor
Portability pitfalls
Signed & Unsigned characters
Random numbers
Portability problems