A struct is a structure that holds multiple related pieces of data.
struct Song { int id; char name; float songLength; float bpm; }
A typedef defines an alias for a type declaration, allowing you to use that alias like a standard data type. With the declaration below, you would then be able to instantiate new songs like "Song richGirl" (opposed to "struct Song richGirl;")
typedef struct { int id; char name; float songLength; float bpm; } Song;