Confusão estrutural em C

Então eu estava olhandoeste tutorial em C e eu encontrei estas linhas de código:

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

E eu pensei que faria muito mais sentido se fosse assim:

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

Eu poderia estar totalmente errado, porque sou muito novo em C, mas suponho que esses dois pedaços de código fariam a mesma coisa. Então eles fazem, existe alguma razão para preferir um ao outro? Ou se eles são diferentes, o que os torna diferentes? Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion