by Salvatore Sanfilippo aka Antirez
🇮🇹: Gli script del Corso C, creato da Antirez e disponibile su YouTube
- intro to the course
- overview of C language
- first program "Hello World"
- compilation process
- preprocessor and headers
- function prototypes
- tail call optimisation
- while loop
- for loop
- for loop without initialisation, stop condition, and increment
- switch
- declaring variables inside the switch by using a block
- program arguments (
argc,argv) - opening and closing files with
fopenandfclose - reading files line by line using
fgets - defining a linked list with
struct - dynamically allocating memory with
malloc - copying strings into allocated memory
- inserting nodes at the head to reverse order
- traversing and printing a linked list
- reimplementing the Unix
taccommand - complexity: O(n) build, O(n) print, memory trade-offs
- motivation for prefixed length strings
- struct layout with natural alignment
- flexible array member (
char str[], C99) - creating a PLS with
ps_createusingmalloc - returning
p->strand recovering header with pointer arithmetic - reference counting (
ps_retain,ps_release) - freeing safely with
ps_free - validating objects with a
magicfield (0xDEADBEEF) - utility functions:
ps_print,ps_len,ps_validate - safer memory management vs raw
malloc/free - trade-offs: extra memory overhead, optional debug builds