che io sappia il ; ci va:

codice:
struct persona { 
char nome[Dimensionenome]; 
char indirizzo[Dimensioneindirizzo]; 
struct data nascita; 
struct data assunzione; 
};
Soprattutto quando dichiari subito persone:

codice:
...
struct data assunzione; 
} PincoPallino; 
...
Cmq una struttura la si può paragonare circa ad una classe OOP, solo che i membri sono pubblici.

Lo scopo è incapsulare dati in un unico dato, ad esempio il dato persona ha più dati collegati a lui, come nome, data nascita ecc...
data è un'altra struttura, che contiene a sua volta anno mese e giorno

codice:
...
struct persona p;
strcpy(p.nome, "Pinco");
strcpy(p.indirizzo, "Via blabla");
p.nascita.anno = 2005
p.nascita.mese = 5;
p.nascita.giorno = 1;
...
Per evitare di scrivere struct davanti a persona si può utilizzare typedef.