durante un'intensa sessione di programmazione mi è sorto un dubbio amletico su il passaggio di un puntatore in C
Premetto che sto lavorando con il compilatore C18 della microchip
io ho una struttura
- Codice:
typedef struct {
unsigned long identifier;
unsigned char data[8];
unsigned char type; //1 = IDE 0=standard
unsigned char length; // data length
unsigned char RTR; //Remote flag. 1 it means remote frame
} typCANmessage;
ho una funzione che all'interno ne richiama una seconda
- Codice:
unsigned char can20b_CAN_read_message(typCANmessage *msg)
{
ECAN_RX_MSG_FLAGS flags;
if (ECANReceiveMessage(msg->identifier, msg->data, msg->length, &flags) == TRUE)
{
//to do
}
}
il mio dubbio in questo momento è il seguente
alla funzione can20b_CAN_read_message io passo il puntatore ad una variabile msg di tipo typCANmessage... fino qui ok
ma quando alla funzione ECANReceiveMessage io passo come parametro per esempio msg->identifier, sto passando il puntatore a msg->identifier oppure il contenuto.
Mi confondo in quando la funzione principale riceve un puntatore e non una variabile
Qualcuno saprebbe chiarirmi la questione?
Grazie a tutti