@oregon
Rubik ha scritto:
Invece non capisco perché la prima locazione la stampi per ultimo, questo implica la conoscenza a priori della disposizione interna dei valori?
EDIT:
Capito il ++ è dopo ptr, l'ultimo è già incrementato.
Tutto chiaro rigrazie.
se posti tutto il messaggio, vedi che ci sono arrivato da solo.
oregon ha scritto:
Non dico di leggere un libro di base di informatica ma almeno wikipedia ...
https://it.wikipedia.org/wiki/Ordine_dei_byt
grazie per il link, ma sono argomenti che conosco e ho studiato 30 anni fa e mi sono tuttora chiari.
oregon ha scritto:
Nel codice del tuo primo post i byte li avresti potuto ottenere con
for (i=0; i<8*sizeof(ui); i+=8)
printf("%X \n" , (unsigned char)((ui>>i) & 0xFF));
senza doverli leggere in memoria ma partendo dal valore.
grazie per l'esempio, non conoscevo questa possibilità, come ho sempre affermato, sono all'inizio con il C, e la sintassi del C per ottenere un dato risultato non è delle più
"logiche", almeno finquando non gli hai preso le misure.
oregon ha scritto:
L'esempio viene sempre dopo per "confermare" gli insegnamenti ricevuti. E questi si ricevono dai libri, dai corsi, dallo studio (in generale) della "teoria" prima che della pratica.
Esatto, infatti dopo aver studiato i puntatori, le tipologie di dato, come stampare attraverso la consolle i dati, come ottenere un indirizzo di memora e un dato entrocontenuto, come convertire i dati da una tipologia all'altra... Non avevo realizzato che per stampare/leggere un byte dovevo convertire il puntatore a unsigned char o uint8_t, cosa diventata palesemente chiara con l'esempio.
Se non avessi studiato, l'esempio l'avrei saputo solo copiare e non capire.