Duda sobre el lenguaje C

Hola, estoy haciendo una práctica y el C normalmente no me da problemas, pero me he encontrao con que tengo esa estrucura:

typedef struct item
{
struct item *siguiente;
struct item *anterior;
int ordre;
} tITEM;

Lo que no pillo es pq pone typedef struct item antes de las llaves y luego pone tITEM despues de las llaves.

Es decir, el tipo este como se llama, item o tITEM? Y pq poner los dos???

gracias!
creo recordar que item es el tipo, y tITEM es un objeto de ese tipo que ya aprobechas par definir.
es decir que a partir de ese mmento podrias crear mas variables del tipo item haciendo :
item variable(donde variable es el nombre que le das )

tITEM ya es una variable de ese tipo.
Si me equivoco que alguien me corrija pero estoy casi seguro que es asi.
Un saludo
gracias x responder, pero creo que no es eso. Este struct esta definido en un fichero .h, de esos que solo son definiciones de tipos y funciones (no declaracion de variables ni nada)

Ademas, luego hay otro struct donde en uno de los campos declara una variable de tipo tITEM, concretamente le llama tITEM Fila

La verdad es q esta es una pekeñisima duda de las muchisimas q tengo sobre esta xunguisima practika... :(
2 respuestas