Description
In this course, you will learn :
- Advanced programming techniques in C.
- You'll begin by going over the most common secondary data types, such as pointers, arrays, strings, structures, and enums.
- Introduced to more advanced functions concepts such as function pointers, typecasting, bitwise operators, and bit fields.
- You will delve deeply into recursion, memory allocation, and programme debugging.
Syllabus :
1. Pointers
- Memory Addresses
- Introduction to Pointers
- Pointer Operators
- Double Pointers
- More Pointer Types
- Challenge: Calculate the Area and Perimeter
- Solution Review: Calculate the Area and Perimeter
2. Arrays
- What is an Array?
- Initializing Arrays
- Arrays and Memory
- Accessing an Out of Bound Index
- Printing Addresses and Accessing Elements of an Array
- Defining the Size of an Array
- Copying Arrays
3. Strings
- Introduction to Strings
- Traversing Strings
- Difference Between a Numeric Array and a String
- Multi-Word Strings
- Pointers and Strings
4. String Functions
- Standard Library Functions
- Finding String Length
- Copying String
- Concatenating Two Strings
- Converting String to Uppercase
- Comparing Two Strings
- Outputting Strings
5. Structures
- Different Ways of Handling Data
- Handling Data Using Arrays
- Handling Data Using Structures
- Declaring and Defining Structures
- Structures and Memory
- Alignment of Elements in a Structure
- Array of Structures
- Structure and Pointers
- Copying Structure
- Nested Structures
- Passing a Structure to a Function
- Applications of a Structure
6. Union
- Introduction to a Union
- Comparison Between a Union and a Structure
- Endianness and the Union
- Access the Same Data in Different Ways Using a Union
- Utility of a Union
7. Enumerations
- Storing Data Using Strings, Constants, and Macros
- Introduction to Enumeration
- Embedding Variables of an Enum Into a Structure
8. Function Pointers
- Calling Functions
- Using Quick Sort
9. Variable Argument Lists
- Use of Variable Argument Lists
- Display Any Number of Values
10. Working With Bits
- Numbering Systems
- Binary to Decimal
- Common Bitwise Operations and Operators
- One's Complement Operator
- Left Shift and Right Shift Operators
- The Utility of the Left Shift and Right Shift Operators
- Challenge: Convert 2-Bytes Time Into Hours, Minutes, and Seconds
- Solution: Convert 2-Bytes Time Into Hours, Minutes, and Seconds
- Quiz on Bits
- AND, OR, and XOR Operators
- Masks and Their Construction
- The Utility of the AND Bitwise Operator
- The Utility of the OR Bitwise Operator
- The Bitwise Compound Assignment Operator
- Applications of Bitwise Operators
11. Recursion
- Different Forms of Recursion
- Find the Sum of Digits of the Whole Number
- Find the Factorial
- Tips, Applications, and Typical Recursive Calls
13. Static and Dynamic Memory Allocation
- Memory Allocation
- Static Memory Allocation
- Static Memory Allocation: Example Program
- Dynamic Memory Allocation
- Dynamic Memory Allocation: Example Program
14. Type casting and Typedef
- Type casting
- Typedef
- Variable Length Structure
- Type casting and malloc( )
- Quiz on Type Casting and Typedef
- 16. C Under Linux
- Introduction to Linux
- Executing C Programs on a Linux Environment
- Processes
- Forking
- Parent and Child
- Signals
- Handling Multiple Signals
15. Command Line Arguments
- Command Line Arguments
- Use of Command Line Arguments
16. Creating Libraries
- Libraries
- Create a Static Library
- Static Library: Create the Client
- Quiz on Static Libraries
- Create a Dynamic Library
- Dynamic Library: Create the Client
17. Debugging C Programs
- Errors
- What is gdb?
- Entering and Exiting gdb Mode
- Execute the Entire Program Using gdb
- Step, Next, and Breakpoints
- Traditional Testing vs. Unit Testing
- Create and Run Unit Testing Using CUnit Framework