Структура путаницы в C

Итак, я просматривалэтот учебник C и я нашел эти строки кода:

struct Monster {
    Object proto;
    int hit_points;
};
typedef struct Monster Monster;

И я подумал, что было бы гораздо больше смысла, если бы это было так:

typedef struct {
    Object proto;
    int hit_points;
} Monster;

Я мог бы быть совершенно не прав, потому что я очень плохо знаком с C, но я бы предположил, что оба этих куска кода будут делать то же самое. Так есть ли они, то есть ли причина отдавать предпочтение одному над другим? Или, если они разные, что делает их разными? Спасибо!