>>>>> On Fri, 20 Apr 2001 08:12:26 +0200, Augusto Ciuffoletti >>>>> <augusto@xxxxxxxxxxx> said: AC> L'alternativa di usare una sola variabile globale (esportata AC> nel .h dove = AC> dichiari anche il prototipo della funzione) =E8 infinitamente AC> pi=F9 fless= ibile. = AC> Tra l'altro, puoi modularizzare meglio le funzioni di test AC> sull'errore, l= a = AC> variabile globale resta visibile ad altre funzioni nello AC> stesso modulo = Pur essendo contrario di principio alle variabili locali, credo siano molto adatte a questo scopo: Python ad esempio utilizza proprio questa tecnica, che si dimostra semplice ed efficace; tutte le funzioni interne restituiscono un "oggetto" Python (un puntatore), oppure NULL per segnalare una eccezione, quindi un errore che il "chiamante" dovrà gestire in qualche modo. Il contesto dell'eccezione (nel tuo caso, il codice dell'errore) viene memorizzato in un variabile "LastError", che viene azzerata dalla funzione che la interroga, diciamo la "GetLastError()". Un tecnica molto simile viene usata internamente da Emacs. L'insegnamento generale che si può trarne è un modo intelligente di mascherare queste variabili globali, rendendole accessibili SOLO tramite una ben specificata API. ciao, lele. -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele@xxxxxxxxxx | -- Fortunato Depero, 1929. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx