Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: [C] variabili globali

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    97

    [C] variabili globali

    Ciao a tutti!

    Ho un sorgente che chiama delle procedure che ho racchiuso in funzioni scritte dopo il main....
    Ora mi chiedo: le aree di memoria che vengono utilizzate da queste fuonzioni possono essere globali e quindi viste da tutte le funzioni oppure devono essere dichiarate nel main e passate per il trattamento alle funzioni tramite il loro indirizzo?
    :master:

  2. #2
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91
    forse sto per fare uno sbaglio che mi costerà l'espulsione dal forum.....
    mah come fai a fare delle funzioni dopo il main????? le funzioni o le procedure vanno fatte prima del main...
    per le aree di memoria ti riferisci alle variabili delle procedure o delle funzioni?
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    97
    be adesso non so di preciso , ma cmq compila ed esegue....penso che il compilatore prende i riferimenti per la chiamata a funzione ....

    "per le aree di memoria ti riferisci alle variabili delle procedure o delle funzioni?"

    no sono aree di memoria che tutte le funzioni devono mainpolare quindi visibili da tutte le procedure...io mi chiedevo quale sia la strategia di programmazione piu' efficente.....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E' la domanda iniziale a non essere chiara ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Originariamente inviato da gorn
    forse sto per fare uno sbaglio che mi costerà l'espulsione dal forum.....
    mah come fai a fare delle funzioni dopo il main????? le funzioni o le procedure vanno fatte prima del main...
    per le aree di memoria ti riferisci alle variabili delle procedure o delle funzioni?
    Potrei dirla io una castroneria però mi sembra che sia possibile mettere le funzioni dopo il main, basta mettere i prototipi delle funzioni prima del main..mi sbaglio? Qualcosa tipo

    int somma(int a, int b);

    void main()
    {
    int s;
    s = somma(5,3);
    cout << s;
    }

    int somma(int a, int b)
    {
    int somma;
    somma = a + b;
    return somma;
    }


    EDIT BY ME: Testato e funzionante..avevo ragione :P

  6. #6
    codice:
    #include <stdio.h>
    
    int a = 2;
    int b = 4;
    
    void a_s(int *);
    void b_s(int *);
    
    int main(void)
    {
       a_s(&a);
       b_s(&b);
       
       printf("A = %d\nB = %d\n", a, b);
       
       return 0;
    }
    
    void a_s(int *a)
    {
       *a += (*a);
    }
    
    void b_s(int *b)
    {
       *b += (*b);
    }
    Questo esempio rappresenta quello che volevi chiedere?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Si, se scrivi le dichiarazioni prima del main, è possibile mettere le definizioni dopo.

    Riguardo alla domanda iniziale... dipende da quanto è grosso il tuo programma, e cosa deve fare. Del resto, se sei riuscito a scrivere tutte le funzioni su un solo file, probabilmente è un programma piccolo... Io starei sul semplice, variabili globali.

    Certo, se conti di espanderlo fino ad usare parecchie funzioni o più di un file, allora ti conviene passare i dati per riferimento.

    (Io la vedo così... finchè non arriva MItaly/oregon/piùomenochiunquealtro a dimostrarmi il contrario :P )
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scusate ... ma che senso ha giocare a chi la indovina quanto chi ha chiesto potrebbe anche "sforzarsi" per chiarire il suo problema?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Scusate ... ma che senso ha giocare a chi la indovina quanto chi ha chiesto potrebbe anche "sforzarsi" per chiarire il suo problema?
    Perchè effettivamente
    E' la domanda iniziale a non essere chiara ...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    97
    SOLUZIONE 1
    //main.c
    main()
    {
    .....
    char p[100];

    ......
    procedura(p); // chiamo procedura che utilizza l'area di memoria all'indirizzo p
    ...
    }

    procedura(char* s)
    {
    .......
    }


    SOLUZIONE 2
    //main.c
    char p[100];
    main()
    {
    ....
    procedura();
    ......
    }
    void prodedura (void)
    {
    // utilizzo la stringa p
    ....
    }


    mi chiedo quale e' piu' efficente? :master:

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 © 2024 vBulletin Solutions, Inc. All rights reserved.