Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Passagio di array dichiarato come const a funzione
Forum - C/C++ - Passagio di array dichiarato come const a funzione

Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 20:50
Lunedì, 13/10/2014
Buonasera. Compilando mi è saltato fuori questo warning che non comprendo a pieno.
passing argument 2 of 'BufferInit' discards 'const' qualifier from pointer target type [enabled by default]
Non capisco, è un problema? Non posso passare come parametro un puntatore se è dichiarato come costante? Crea dei problemi? oppure è un warning che si può ignorare?

Posto il codice per ogni eventualità
Codice sorgente - presumibilmente C/C++

  1. uint8_t const _TWIRxBufferSize = TWIRxBufferSize;//Dimwnsione del buffer di ricezione
  2. uint8_t const _TWIRxBufferArray[TWIRxBufferSize];//Array per il buffer di ricezione
  3.  
  4. BufferInit(&TWIRxBuffer, _TWIRxBufferArray, _TWIRxBufferSize);


Ultima modifica effettuata da Roby94 il 13/10/2014 alle 20:52


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:00
Lunedì, 13/10/2014
Ma se quella funzione ci deve scrivere nel buffer, perché lo dichiari costante?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 21:10
Lunedì, 13/10/2014
Intendi sovrascrivere il puntatore o scrivere dentro le varie celle? Quando dichiaro costante un array la parte costante non è solo il puntatore alla prima cella? è Anche il contenuto dell'array?


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:51
Lunedì, 13/10/2014
Se scrivi

const int *t

viene impedita la modifica del valore puntato


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 22:56
Lunedì, 13/10/2014
Ah ok capito allora è effettivamente insensato, grazie mille.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote