Advanced Embedded Systems Introduction to C language
Features of C
- History
- Structure of C Program.
- Keywords, Identifiers, Variables and Constants
Data Types
- Primitive Data Types.
- Aggregated Data Types.
Operators
- Binary Operators
- Unary Operators
- Ternary Operators
- Special Operators
- Order of evaluation.
Preprocessor features Control-Flow Statements
- The Control-Flow Program Statements
- Looping Statements
- The Data-checking process
Functions
- Role of Functions
- Passing arguments to functions
- Returning values from functions
- Recursive Functions
- Callback functions
- Implications on Stack
- Pass by value/reference
Arrays
- Defining, initializing and using arrays
- Multi Dimensional arrays
- Arrays of Characters and Strings
- Arrays and pointers
- Passing arrays to functions
- String handling and its library functions
Storage Classes
- Scope and lifetime of a variable
- Internal
- External/Global
- Automatic
- Static
- Register
- Volatile
Structures & Unions
- Usage of Structures
- Declaration, initialization and accessing
- Nested Structures
- Array of structures
- Allocation of memory and holes
- Unions
Bitwise Operators
- AND (&), OR (|), XOR (^)
- Compliment (~)
- Left-shift (<<), Right-shift (>>)
- Masking, Setting and Testing of Bit/Bits
Pointers
- The purpose of pointers
- Defining pointers
- The & and * operators
- Pointer assignment
- Pointers with functions
- Pointer to Pointer
- Pointers to Arrays
- Arrays of Pointers
- Void Pointers
- Call By value and Call by reference
- Advanced pointer types
- Pointers to functions
- Pointers and Strings
- Pointers and Dynamic memory
Command line arguments & Dynamic Memory Allocation
- Allocation (Malloc, Calloc, Realloc)
- De-Allocation(Free)
Variable Number of Arguments
- Implementation of printf()
- Implementation of scanf()
Data Structures
- Introduction
- Linked Lists
- Stacks & Queues
- Stacks Using Arrays
- Stacks Using Linked List
- Queues using Arrays
- Queues using Linked List.
- Circular Queues
- Single Linked List
- Circular Linked List
- Double Linked List
- Infix, Prefix and Postfix Expressions
- Trees
- Binary Trees
- Binary Search Trees
- Graphs
- Hashing
Sorting and Searching Techniques
- Insertion sort
- Selection sort
- Bubble sort
- Merge sort
- Quick sort
- Heap sort
- Linear search
- Binary search
File Handling Concepts
- Concept of a FILE data type
- File Input, Output operations
- Sequential Files
- Random Access Files
Standard I/O Library Functions
- fopen,fread,fwrite,fclose,fseek
- Relationship between file descriptor
- and FILE pointer
- Character at a time I/O
- Line at a time I/O
- Formatted I/O
Reading and Writing Structures to Files
- In Ascii format
- In Binary format
- Modifying a structure in the file