Bhe dalle vostre risposte mi sembra proprio come pensavo: se il programmatore non e' un incompetente le globali vanno anche bene
Se sai che la g. dura per tutto il programma, la userai per tutto il programma.
Se conosci la regola dell'ultima dichiarazione, sai che le locali sovrascrivono le globali, e le puoi usare tranquillamente.
Se le globali non le dichiari per 2 cagate che usi saltuariamente, non aggiungi molta confusione al programma.
Si insomma, mi pare di capire che vadano bene se sai quello che stai facendo... un po' come dire che un fucile a canne mozze puo' anche andare bene per un cacciatore con molta esperienza, ma per un novizio meglio di no, sono piu' i danni che altro
Quindi mi pare di capire che sia per lo piu' una questione di "codice pulito" e "abilita' del programmatore".
Grazie per le vostre opinioni.
Riguardo ai goto, non sono contrario, proprio come le globali. L'importante e' usarli bene. Tempo fa ho letto un documento di Linus Torvald che spiegava del perche' i goto non sono un male. Esistono casi in cui e' molto comodo, **veloce** e assolutamente chiaro. Ovviamente i goto creano problemi quando si usa a mo' di assembly o basic, che li usi per fare salti da posti completamente distanti tra loro, ma solitamente i goto in C si usano per fare veloci salti fuori da cicli e strutture nestate.
Pero' sono interessato particolarmente alla risposta di infinitejustice: perche' dici che le globali rendono il codice non portabile?
I problemi di cambio nel progetto all'ultimo momento non mi riguardano, sono scrupoloso quando lavoro da solo e anche quando sono in gruppo, solitamente evito i cambi all'ultimo momento, e se ce ne sono talmente drastici da ostacolarmi il codice, bhe riscrittura.
Riguardo al runtime static initialization, onestamente ho qualche difficolta' a capire di cosa parli, ma da una veloce ricerca su google sembra proprio che non mi riguardi (visto che il C per quanto mi ricordo e' grezzo (per questo lo amo) e non ha features legate al realtime, almeno per quello che ricordo al momento).
Al massimo C++ ma se posso lo evito.
Comunque mi interessa sapere riguardo alla portabilita'.
Grazie a tutti
Ciauz