Spiegazione istruzione

di il
6 risposte

Spiegazione istruzione

Salve, premesso che sono un "neofita", mi spiegate questa istruzione:

I2CFreedom_TDeviceData *DeviceDataPrv = (I2CFreedom_TDeviceData *)DeviceDataPtr;
La prima struttura è un puntatore e mi restituisce il valore di DeviceDataPrv.
Quindi avrei I2CFreedom_TDeviceData (valore DeviceDataPrv)...
Ma l'altra quando * è tra parentesi cosa si verifica??

Grazie per ogni tipo di aiuto

6 Risposte

  • Re: Spiegazione istruzione

    Vediamola in questi termini:
    Tipo_dato *Var1 = (Tipo_dato *)Var2;

    Quindi hai una variabile Var1 di Tipo: puntatore a Tipo_dato; la variabile Var2 è una variabile (magari di tipo void) a cui vuoi con un cast esplicito renderla di Tipo: puntatore a Tipo_dato.

    Spero aver chiarito la questione.
  • Re: Spiegazione istruzione

    Presumo parli di I2C bus quindi un canale di comunicazione.
    Immagino che in DeviceDataPtr hai il puntatore ad un buffer di dati, probabilmente un array di byte.
    Immagino poi che I2CFreedom_TDeviceData sia una struttura.
    Con il cast che hai scritto in pratica assegni ad un puntatore alla struttura l'indirizzo dei dati grezzi: in questo modo puoi leggere i bytes che ti sono stati ricevuti, in maniera più semplice come ad es. DeviceDataPrv->campo1, DeviceDataPrv->campo2...
  • Re: Spiegazione istruzione

    Ovviamente le spiegazioni sono corrette ma, per evitare incomprensioni (e dover sempre usare l'immaginazione), sarebbe meglio dare maggiori dettagli sul codice.

    Anche per essere più precisi, potresti dire di che tipo è la variabile

    DeviceDataPtr

    e farci vedere la struttura

    I2CFreedom_TDeviceData
  • Re: Spiegazione istruzione

    Ci devo un attimo pensare....per il momento grazie dell'aiuto
  • Re: Spiegazione istruzione

    Devi pensare a dare maggiori informazioni??
  • Re: Spiegazione istruzione

    Ciao oregon, il buon rob* ha premesso di essere un neofita quindi probabilmente non sa dove andare a reperire queste informazioni .
Devi accedere o registrarti per scrivere nel forum
6 risposte