Linuxtrent: Re: Dubbio di forma (programmando in C)

  • From: Lele Gaifax <lele@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxxxxxx
  • Date: Fri, 20 Apr 2001 17:50:35 +0200

>>>>> 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


Other related posts: