Newsgroup: it.comp.lang.c
Titolo: Domanda sui tipi

Ciao a tutti =)
Volevo sapere qual'è il modo "più standard C", ovvero il più corretto e
portabile, per definire una variabile di 8, 16, 24, 32 ecc. bit.
Ho spulciato (forse senza troppa attenzione) dei documenti riguardo lo
standard C99, ma non ci ho cavato molto. Voglio dire: è corretto definire
variabili di tipo ad esempio unsigned char, e aspettarsi che siano
considerate, su tutti i compilatori, come variabili di 8 bit, oppure
assumere che un int sia sempre di 32 bit e cosi via per altri tipi ?
Grazie in anticipo !

"Markobre" <markob...@QUESTOtiscali.it> ha scritto nel messaggio
news:ucp4b.76533$sj6.1...@tornado.fastwebnet.it...

no dipende sempre dalla macchina. Per tale motivo esiste ed e molto
utilizzato l ' operatore sizeof(type)
con sizeof infatti è possibile sempre sapere la dimensione di un tipo o di
una variabile evitando cosi situazione poco piacevoli e volte disastrosee.
spero di esserti stato di aiuto... ciao

 assumere che un int sia sempre di 32 bit e cosi via per altri tipi ?
No.
°°° Posted from X-Privat Free NNTP server - 
www.x-privat.org
 °°°

 assumere che un int sia sempre di 32 bit e cosi via per altri tipi ?
Assolutamente no.
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se il  destino di un uomo  e` annegare, anneghera` anche  in un bicchier
d'acqua.
Proverbio yddish


[cut]
Sorbole, che velocità ! Ho come l'impressione di aver chiesto una cosa trita
e ritrita... Ad ogni modo, la stdint.h fa proprio al caso mio, grazie mille
a tutti =)

 nomi con una "u" davanti). intN_t e` grande esattamente N bit.
Da notare che *probabilmente* ci sono questi typedef. La loro presenza 
e' opzionale (o meglio, subordinata alla capacita' della macchina di 
trattare dati di queste dimensioni). Il loro uso restringe quindi (forse 
solo leggermente) la portabilita' del programma.


 Ciao a tutti =)
Scusa se mi accodo al tuo thread ma mi e` venuta in mente
una domanda appunto sul C99...quanti compilatori lo supportano?
E in che grado? completamente?
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
rhy...@NOSPAMmyself.com

 E in che grado? completamente?
Per quel che ne so io sono pochi. L'unico che conosco (di fama) e' 
Comeau C/C++. Al gcc mancano ancora alcune caratteristiche ma e' sulla 
buona strada. Credo valga lo stesso per lcc-win32.
Suppongo inoltre che tutti gli Unix registrati presso Opengroup abbiano 
un compilatore C99, perche' se non erro questo e' richiesto.
-- 
Enrico 'Trippo' Porreca


 E in che grado? completamente?
Per quel che ne so io sono pochi. L'unico che conosco (di fama) e' 


 trattare dati di queste dimensioni). 
La loro presenza non e`  opzionale. Se il compilatore dice di supportare
il  C99  allora devono  esserci. Inoltre,  anche  se l'hw  non  supporta
nativamente questi tipi,  possono sempre essere emulati  (come credi che
gli x86 gestiscano tipi a 64bit?).
Kronos
-- 
Home: 
http://kronoz.cjb.net
"It is more complicated than you think"
                -- The Eighth Networking Truth from RFC 1925

 gli x86 gestiscano tipi a 64bit?).
Si' in effetti ho sbagliato esempio. Non e' la macchina, e' 
l'implementazione.

 strada. Credo valga lo stesso per lcc-win32.
Mmm vorra` dire che faro` qualche prova con GCC 3.3


 Mmm vorra` dire che faro` qualche prova con GCC 3.3
Dai un'occhiata a questo: 
http://gcc.gnu.org/gcc-3.3/c99status.html
-- 
Enrico 'Trippo' Porreca

     7.18.1.1 Exact-width integer types
[snip]
Gia`, erano i least quelli richiesti.
Kronos
-- 
Home: 
http://kronoz.cjb.net
"La teoria e` quando sappiamo come funzionano le cose ma non funzionano.
 La pratica e` quando le cose funzionano ma non sappiamo perche`.
 Abbiamo unito la teoria e la pratica: le cose non funzionano piu` e non
 sappiamo il perche`." -- A. Einstein