Mira la instrucción "typedef" sirve para renombrar un tipo de dato.
Su formato es:
Código
typedef <tipo_original> <nuevo_nombre_tipo>
para que lo entiendas mejor mira este ejemplo:
Código
typedef int entero; //hace que la palabra "entero" sea equivalente al tipo int
De este modo si ahora quisiéramos crear un entero podríamos hacerlo de 2 maneras.
Usando el nuevo nombre que le hemos otorgado en la linea anterior al tipo de variable "int":
Código
entero num;
o como siempre:
Código
int num;
Explicado esto vamos con tu pregunta, si lo pones antes de la declaración de una estructura "struct" lo único que estas haciendo es mejorar la legibilidad de tu programa, por que cuando necesites generar una estructura de ese tipo, no tendrás que incluir la palabra reservada "struct" delante del nombre que le diste a dicha estructura, te pongo el ejemplo que usaste para hacer la pregunta.
Código
typedef struct { int INT_example; float FL_example; }miestructura;
Ahora cada vez que quieras declarar una nueva estructura del tipo "miestructura" lo harás de esta manera.
Código
miestructura objeto;
Pero si no incluimos la instrucción "typedef" delante como vemos en el siguiente ejemplo:
Código
struct miestructura { int INT_example; float FL_example; };
Ahora cuando quieras declarar una nueva estructura del tipo "miestructura" deberás incluir la palabra reservada "struct" delante de la declaración de esta manera:
Código
struct miestructura objeto;
Para terminar lo que hacemos al usar "typedef" esa hacer el código más fácil de leer.
Un saludo
Kaltorak.