Tipi definiti dall'utente Passando a una funzione è una chiamata per valore in C?

StackOverflow https://stackoverflow.com/questions/4184248

  •  10-10-2019
  •  | 
  •  

Domanda

Ho una struct e passare questa struct alla funzione. Forse la funzione protype è:

typedef struct
{
    //Bla Bla
} ABC;

void func(ABC abc)
{

}

Questa funzione chiamante è chiamata per valore o Chiama con referance? Qualcuno dire che "C doesnt hanno costruttore di copia in modo da non possiamo passiamo tipi definiti dall'utente con valore". È questa idea giusta?

È stato utile?

Soluzione

Chiamata per valore. C è sempre chiamata per valore.

(C non ha costruttori di copia, ma le strutture può ancora essere copiato con la creazione di una seconda struttura con la struttura originale come la sua inizializzazione parametri di funzione vengono inizializzati con i valori che vengono passati come argomenti,. È lo stesso meccanismo al lavoro. )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top