Course

C

Topics in C.

99 Topics 6 Quizzes 9h 54min Est. Time

Curriculum

1
Pointer Arithmetic
Pointer Arithmetic
2
Pointer to Pointer (Double Indirection)
Pointer to Pointer (Double Indirection)
3
Function Pointers & Callbacks
Function Pointers & Callbacks
4
Restrict Keyword (C99)
Restrict Keyword (C99)
5
Void Pointers (Generic Pointers)
Void Pointers (Generic Pointers)
6
Complex Pointer Declarations
Complex Pointer Declarations
7
Dangling Pointers & Safe Patterns
Dangling Pointers & Safe Patterns
8
Static, Stack & Heap Allocation
Static, Stack & Heap Allocation
9
Malloc Internals (glibc)
Malloc Internals (glibc)
10
Calloc, Realloc & Aligned Allocation
Calloc, Realloc & Aligned Allocation
11
Memory Pools & Custom Allocators
Memory Pools & Custom Allocators
12
Memory Corruption Detection
Memory Corruption Detection
13
Stack Allocation & VLA (C99)
Stack Allocation & VLA (C99)
14
Memory-Mapped Files (mmap)
Memory-Mapped Files (mmap)
15
Reference Counting in C
Reference Counting in C
16
Token Pasting (##) & Stringification (#)
Token Pasting (##) & Stringification (#)
17
Variadic Macros & __VA_ARGS__
Variadic Macros & __VA_ARGS__
18
X-Macros & Code Generation
X-Macros & Code Generation
19
Header Guards & #pragma once
Header Guards & #pragma once
20
#line & #error Directives
#line & #error Directives
21
Conditional Compilation Patterns
Conditional Compilation Patterns
22
Macro Pitfalls: Multiple Evaluation
Macro Pitfalls: Multiple Evaluation
23
Translation Phases
Translation Phases
24
Lexical Analysis & Tokens
Lexical Analysis & Tokens
25
Parsing & AST Generation
Parsing & AST Generation
26
Code Generation & Optimization
Code Generation & Optimization
27
Linker Relocation & Symbol Resolution
Linker Relocation & Symbol Resolution
28
Inline Functions vs Macros
Inline Functions vs Macros
29
Calling Convention (cdecl, stdcall)
Calling Convention (cdecl, stdcall)
30
POSIX Threads (pthreads)
POSIX Threads (pthreads)
31
Mutex & Condition Variables
Mutex & Condition Variables
32
Thread-Local Storage
Thread-Local Storage
33
C11 Atomics & Memory Order
C11 Atomics & Memory Order
34
Lock-Free Data Structures
Lock-Free Data Structures
35
Signal Handling & Async-Safety
Signal Handling & Async-Safety
36
OpenMP Parallel Directives
OpenMP Parallel Directives
37
Compiler Optimization Flags (-O1, -O2, -O3)
Compiler Optimization Flags (-O1, -O2, -O3)
38
Profile-Guided Optimization
Profile-Guided Optimization
39
Loop Unrolling & Vectorization
Loop Unrolling & Vectorization
40
Cache-Friendly Data Layout
Cache-Friendly Data Layout
41
Branch Prediction & Likely/Unlikely
Branch Prediction & Likely/Unlikely
42
Inline Assembly Intrinsics
Inline Assembly Intrinsics
43
Link-Time Optimization (LTO)
Link-Time Optimization (LTO)
44
System V AMD64 ABI
System V AMD64 ABI
45
Windows x64 Calling Convention
Windows x64 Calling Convention
46
Stack Frame Layout
Stack Frame Layout
47
Return Value Handling
Return Value Handling
48
Structure Passing
Structure Passing
49
TLS & Thread-Local Storage ABI
TLS & Thread-Local Storage ABI
50
Name Mangling & C Linkage
Name Mangling & C Linkage
51
Volatile & Memory-Mapped I/O
Volatile & Memory-Mapped I/O
52
Interrupt Service Routines
Interrupt Service Routines
53
Bit Manipulation Techniques
Bit Manipulation Techniques
54
Fixed-Point Arithmetic
Fixed-Point Arithmetic
55
Watchdog Timers
Watchdog Timers
56
Low-Power Modes
Low-Power Modes
57
Bootloader Implementation
Bootloader Implementation
58
Berkeley Sockets API
Berkeley Sockets API
59
TCP Server Implementation
TCP Server Implementation
60
Non-blocking I/O with epoll
Non-blocking I/O with epoll
61
UDP Multicast
UDP Multicast
62
DNS Resolution (getaddrinfo)
DNS Resolution (getaddrinfo)
63
Raw Sockets & Packet Injection
Raw Sockets & Packet Injection
64
SSL/TLS with OpenSSL
SSL/TLS with OpenSSL
65
Static vs Shared Libraries
Static vs Shared Libraries
66
Library Search Paths
Library Search Paths
67
Symbol Visibility & dllexport
Symbol Visibility & dllexport
68
Linking Order & Undefined Symbols
Linking Order & Undefined Symbols
69
Shared Library Versioning
Shared Library Versioning
70
Weak Symbols & Interposition
Weak Symbols & Interposition
71
Plugin Systems with dlopen
Plugin Systems with dlopen
72
Unit Testing with CUnit/Check
Unit Testing with CUnit/Check
73
Mocking in C
Mocking in C
74
Fuzzing with libFuzzer
Fuzzing with libFuzzer
75
Assertion-Based Testing
Assertion-Based Testing
76
Test Coverage Analysis (gcov)
Test Coverage Analysis (gcov)
77
Continuous Integration for C
Continuous Integration for C
78
Valgrind for Memory Testing
Valgrind for Memory Testing
79
Buffer Overflow Attacks
Buffer Overflow Attacks
80
Stack Canaries
Stack Canaries
81
Address Space Layout Randomization
Address Space Layout Randomization
82
Format String Vulnerabilities
Format String Vulnerabilities
83
Integer Overflow & Wraparound
Integer Overflow & Wraparound
84
Secure Coding Guidelines (CERT)
Secure Coding Guidelines (CERT)
85
Static Analysis with Coverity
Static Analysis with Coverity
86
Recursive Descent Parsing
Recursive Descent Parsing
87
Lex/Yacc & Flex/Bison
Lex/Yacc & Flex/Bison
88
Regular Expressions in C
Regular Expressions in C
89
JSON Parser Implementation
JSON Parser Implementation
90
INI File Parser
INI File Parser
91
CSV Parsing Edge Cases
CSV Parsing Edge Cases
92
Binary Protocol Parsing
Binary Protocol Parsing
93
File I/O System Calls
File I/O System Calls
94
Process Management (fork, exec)
Process Management (fork, exec)
95
Inter-Process Communication (pipe, FIFO)
Inter-Process Communication (pipe, FIFO)
96
Signal Handling
Signal Handling
97
Memory-Mapped Files
Memory-Mapped Files
98
Resource Limits (setrlimit)
Resource Limits (setrlimit)
99
Daemon Process Creation
Daemon Process Creation

Quizzes

C Basics
5 questions
C Core Concepts
5 questions
C Intermediate
5 questions
C Advanced
5 questions
C Expert
5 questions
C Mastery
5 questions