Mai parlato di portabilita' ... semmai di riduzione dell'accoppiamento.Originariamente inviato da akiross
@oregon & infinitejustice
ok mi e' chiaro cosa si intendeva per portabilita'
Se nel modulo hai piu' funzioni che sfruttano la variabile definita in questo modo e se consideri che *ogni* funzione dovrebbe essere una "black box" allora il problema persiste.... nel loro modulo definisco una globale (e non ho detto una globale esterna), quella globale rimane comunque all'interno del modulo asd.c, e pertanto la scatola nera e' mantenuta.
Se nel modulo hai *una sola funzione* allora non ha senso definire la variabile esternamente ...
Da cio' deduco che tu sia d'accordo almeno nel non usare in tal modo le globali.ovvio che se poi ci metto un extern davanti cambia tutto... la variabile e' visibile ovunque e i casini saltano fuori piu' facilmente.
Mai negato che non si possa fare.Riguardo a cio' che dice oregon: e' vero che le variabili non sono necessarie, ma neanche locali lo sonoVoglio dire che c'e' gente che scrive programmi (e che magari funzionano perfettamente) solo usando le globali.
Si perde in "manutenibilita'" perche' la prima volta che c'e' un bug, le globali (soprattutto in ambiente multithreading) ti fanno impazzire nel trovare la causa ...
In definitiva ti sconsiglio l'uso di variabili condivise a qualsiasi livello ...