Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25
  1. #11
    riguardo al "goto" credo che possa venir normalmente utilizzato, quando ce ne è bisogno, e soprattutto quando tende a VELOCIZZARE il codice.

    bisogna pensare che in assmebly ci sono solo "goto" quindi non mi sembra un metodo cosi' pericoloso di scrivere programmi..
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  2. #12
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Domanda: in alcune particolari circostanze in cui l'alternativa alle globali sarebbe passare tra diverse funzioni delle variabili, che possono essere per esempio degli array, sono più veloci le globali o il ripetuto passaggio di variabili ? E se con le globali si fa più in fretta, vale la pena di perdere in prestazioni epr guadagnare in "stile" del programma ?

  3. #13
    @pprllo
    sulla velocita' delle globali sono sicuro: semplicemente per un motivo logico: non c'e' necessita' di allocarle piu' volte nello stack, ma vengono inizializzate una volta all'inizio del programma (forse nello heap ma non sono sicuro). Sta di fatto che il non doverle allocare ad ogni chiamata di funzione le rende piu' performanti.

    @oregon & infinitejustice
    ok mi e' chiaro cosa si intendeva per portabilita' (ehm che io avrei citato come riusabilita' del codice, che e' indipendente dalla portabilita' che indica invece il cambiamento di piattaforma, e su questo non vedo molti problemi con le globali).

    Pero' anche qui c'e' da distinguere il caso specifico: se lo sviluppatore intende riutilizzare il codice o no

    Ovvio che se voglio scrivere una funzione di libreria (ie quicksort) meglio evitare la globale, anche se so per esperienza che ****tante**** librerie utilizzano globali per i fatti loro (giusto per citare le prime 3 che mi vengono in mente: qt, opengl e sdl).

    Anche questo pero' lo vedo come un... optional, e non una necessita'. Se scrivo 3 funzioni che si interfacciano con il programma, e 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.

    ovvio che se poi ci metto un extern davanti cambia tutto... la variabile e' visibile ovunque e i casini saltano fuori piu' facilmente.

    Riguardo a cio' che dice oregon: e' vero che le variabili non sono necessarie, ma neanche locali lo sono Voglio dire che c'e' gente che scrive programmi (e che magari funzionano perfettamente) solo usando le globali. Certo non e' una bella cosa, ma e' fattibile. Le variabili sono opzionali in C, pertanto dire che "essendo opzionali vanno evitate" e' il genere di discorso che volevo evitare, e la ragione prima per cui ho aperto questo thread

    In ogni caso oregon, tu parli di moduli e come ho detto poco su, mi riferivo a globali a livello di modulo (file .c), anche se immagino che il discorso non cambia espandendo la visibilita' della variabile.

    Alla fine dipende solo dalle mie necessita' e dalla mia intenzione di riutilizzare il codice.

    @infinitejustice
    Bhe per quanto riguarda il cambio di progetto, se arriva il capo e mi dice che devo cambiarlo - ed e' un cambiamento che implica la riprogettazione (ed e' anche giusto visto che si e' detto cambio di progetto ) - gli tiro una testata per principio

    Scherzi a parte, comunque bhe, se c'e' da riprogettare tutto direi di no, ma la riscrittura di un modulo e' decisamente veloce... insomma e' un campo in cui l'extreme programming si fa valere bisogna solo capire se la situazione lo consente.

    Piu semplicemente, cosa succede se le globali nn possono essere inizializzate a tempo di compilazione ma solo run time ?
    Eh, cosi' ad occhio direi: potrebbe esserci un problema di accessi: magari chi inizializza la variabile potrebbe non inizializzarla prima che qualcuno la voglia utilizzare - correggimi se ho capito male.
    Se il problema che intendevi e' questo credo che anche qui sia l'abilita' e l'esperienza del programmatore ad avere tanta voce in capitolo, altrimenti non ho capito a cosa ti riferisci

    grazie ancora!
    Ciauz
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da pprllo
    Domanda: in alcune particolari circostanze in cui l'alternativa alle globali sarebbe passare tra diverse funzioni delle variabili, che possono essere per esempio degli array, sono più veloci le globali o il ripetuto passaggio di variabili ? E se con le globali si fa più in fretta, vale la pena di perdere in prestazioni epr guadagnare in "stile" del programma ?
    Sei proprio sicuro che si faccia piu' in fretta?

    E ammesso questo, piu' in fretta di quanti microsecondi?

    In ogni caso, secondo me, vale la pena ... per non impazzire in seguito con i famosi bug logici da "accoppiamento" ...

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da akiross
    @oregon & infinitejustice
    ok mi e' chiaro cosa si intendeva per portabilita'
    Mai parlato di portabilita' ... semmai di riduzione dell'accoppiamento.

    ... 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 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.
    Se nel modulo hai *una sola funzione* allora non ha senso definire la variabile esternamente ...

    ovvio che se poi ci metto un extern davanti cambia tutto... la variabile e' visibile ovunque e i casini saltano fuori piu' facilmente.
    Da cio' deduco che tu sia d'accordo almeno nel non usare in tal modo le globali.

    Riguardo a cio' che dice oregon: e' vero che le variabili non sono necessarie, ma neanche locali lo sono Voglio dire che c'e' gente che scrive programmi (e che magari funzionano perfettamente) solo usando le globali.
    Mai negato che non si possa fare.
    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 ...

  6. #16
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Originariamente inviato da oregon
    Sei proprio sicuro che si faccia piu' in fretta?

    E ammesso questo, piu' in fretta di quanti microsecondi?

    In ogni caso, secondo me, vale la pena ... per non impazzire in seguito con i famosi bug logici da "accoppiamento" ...
    Proprio per questo l'ho posta come domanda. Si fa più in fretta ? Di quanto ?

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da pprllo
    Proprio per questo l'ho posta come domanda. Si fa più in fretta ? Di quanto ?
    Personalmente (ma bisognerebbe avere il tempo di verificare) non si risparmia proprio nulla.

  8. #18
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    akiross nn conosco le tue esperienza di programmazione. A me è capitata una situazione molto banale: avevo creato un dato astratto per un progetto ed avevo gestito il tutto con un paio di variabili globali. Di quell'oggetto doveva essercene una sola istanza, quindi era perfetto.

    Quando poi mi è stato chiesto di farne un altro, ADT, in cui quindi fosse possibile solo in fase di run time sapere il numero di istanze ecco che ho dovuto rimettere mano a tutto il codice per sistemare le singole funzioni in modo che tramite puntatori e doppi puntatori si passassero gli oggetti.

    Ed è stata una bella smaronata che mi sarei potuto evitare se la prima volta avessi evitato le globali.

    Ora ogni volta che mi serve...tac includo il mio file e sono a posto.

    Il file è piu pulito, c'è indipendenza funzionale e quindi posso esportare anche singole funzioni in altri progetti senza dovermi portar dietro globali o altre funzioni che le manipolino.


    Non è un obbligo non utilizzare le globali. Un po come nessuno ti obbliga a non scrivere
    return a(), b(), c(), d();.
    Tutto il codice che scrivi con le globali puoi farlo anche senza e con notevoli benefici.



    p.s. in XP proprio perche cambi di requisiti (e quindi nel progetto) sono all'ordine del giorno immagino che l'utilizzo di globali sia alquanto sconsigliato, onde nn dover riscrivere tutto ogni volta.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  9. #19
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Delle funzioni/classi friend e dei goto che mi dite ?

  10. #20
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per le friend nulla di particolare ... i goto non esistono ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.