Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C: funzioni]

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    225

    [C: funzioni]

    Salve,
    una domanda banale. Sono alle prime armi in C.
    Dunque ho il main che chiama una funzione del tipo:

    main
    {
    byte *a; /* a: puntatore a byte*/
    pippo b;
    ...
    function(a, &b);
    ...
    }

    in un altro file ho:

    void function(byte* aa, pippo* bb)
    {
    ...
    }

    La mia domanda banale sicuramente è:

    la function che sta nel main, con l'istruzione &b, restitutisce qualcosa al main??

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    14
    In genere dovrebbe modificare il valore della variabile b in quanto con il prefisso & la passi x indirizzo.

  3. #3
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Non è ben chiaro quello che vuoi fare...
    Però posso fare due note:
    - Passare i parametri per indirizzo con & è possibile sono il C++, nel C standard non esiste (almeno C89 per quanto ne so)
    - Il tipo di dati byte in C non esiste (almeno che tu non definisca una strutture. Usa al suo posto (signed) char o unsigned char.

  4. #4
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    No, la function è definita con VOID e quindi non restituisce nulla, per ciò le viene passata un puntatore per poter modificare la variabile e rendere disponibile questa modifica anche nel main().
    Ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    14
    Data la mia esperienza in c ti posso assicurare che è possibile passare le variabili per indirizzo...anch'io l'ho fatto.Quindi vai a modificare il variabile b!!!

  6. #6
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Sempre che la funzione preveda di modificare i parametri passati, non viene restituito nulla al chiamante (main) ma le variabili risultano modificate, visto che il passaggio dei parametri avviene per riferimento.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    14
    Questo è sicuro

  8. #8
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Una precisazione:

    il passaggio dei parametri per indirizzo è presente sia in c che in c++, e consiste nel passare alla funzione un puntatore contenente l'indirizzo di memoria della variabile (che può quindi essere modificata anche nella funzione).

    Il passaggio dei parametri per riferimento esiste solo in C++, ed è una forma più sofisticata di gestione dei puntatori.

    In questo caso il passaggio avviene per indirizzo, non per riferimento.

    Linux user number 403381

    Stop TCPA!

  9. #9
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Originariamente inviato da Fox82
    Una precisazione:

    il passaggio dei parametri per indirizzo è presente sia in c che in c++, e consiste nel passare alla funzione un puntatore contenente l'indirizzo di memoria della variabile (che può quindi essere modificata anche nella funzione).

    Il passaggio dei parametri per riferimento esiste solo in C++, ed è una forma più sofisticata di gestione dei puntatori.

    In questo caso il passaggio avviene per indirizzo, non per riferimento.

    Giusto !

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.