Built-in types like int and char only go so far. Real programs describe things: a student, a product, a point on a screen. C lets you define your own types for these, so related data stays together instead of floating around in separate variables.
The module starts with structs, which group several values under one name, and typedef, which gives your types shorter, cleaner names. It then shows how to pass structs to functions, and covers unions, where members share the same memory, and enums, which give names to a set of related constants.
Watch the lessons in order, then continue on to Files, I/O & Error Handling.
The freeCodeCamp C course chapter on defining structs and grouping related data under one name. Starts at the 2:21:27 mark.
What a struct is and why it matters, how to define one, using the dot operator to access members, why strcpy is needed for strings, and how typedef shortens your type names.
A short example of defining a Student struct with typedef and passing it to a function to print its members.
How unions and enums work in C and how a union uses memory compared to a struct.
An overview of how to use the enum in C, with source code to follow along.