Structs and Tydefs in Objective C

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;