La Funzione lettura va in Loop fino a che non viene premuto un Tasto... Alla fine dell'while viene premuto un tasto e viene memorizzato nella variabile menu...

Fino a Qui Tutto Normale...
Ma se io premo un tasto che non e' definito nei case...
non vado nel default ma esce dallo switch (Errore)

Come Mai non va' nell default ?

codice:
#define WRITE1       'w'
#define WRITE2       's'
#define READ1        'r'
#define READ2        'l'
#define QUIT1        'q'
#define QUIT2        'e'
#define EXIT          27

void lettura (void) {
   unsigned char menu;

   while (!kbhit()) {
      ...
   }
   menu = getch();
   
   switch (menu) {
      case WRITE1: /* Scrittura Nuovo Messaggio */
      case WRITE2: scrittura();
                   break;
      case READ1:  /* Ritorna alla Lettura */          
      case READ2:  lettura(); 
                   break;                  
      case EXIT:  /* Vai al Menu "Finale" */
                  menuExit();
                  break;           
      case QUIT1: /* Exit */
      case QUIT2: logout();
                  break;
        dafault:  /* Ritorna alla Lettura */
                  lettura();
                  break;
   }
}
Altra cosa... Questa funzione si puo' dire ricorsiva ?
In un certo senso richiama se' stessa...