I am relatively new to c, and I get structures and how they work, but in my c book it says to declare them like this

struct name {
type name;
} variable

or you can do this

struct name {
type name;
}
struct name variable;
I saw the other day that you don't need to give the structure a name, you can just do this
struct {
type name;
} variable

they both work, can someone explain this to me, why is there two ways?