no ma alcune librerie li definiscono puoi quindi vedere come fanno.
Ti faccio un esempio la libreria wxwidgets che si utilizza per la gui ma
che ha anche classi per network, opengl, thread, etc... definisce ad
esempio per gli interi i tipi:
wxInt32, wxInt16, wxInt8, wxUint32, wxUint16
stessa cosa per stringhe e altri tipi di dato; a quel punto � safe usare
un wxInt16 quando vuoi un intero di 16 bit su ogni piattaforma
supportata dalla libreria.
ti hanno già risposto, cmq anche lo "standard" (non storcete
il naso) interno di Microsoft consente di usare tipi
integrali di profondità nota a prioti
__int8
__int16
__int32
__int64
Questi tipi dovrebbero essere emulati (se necessario) in
modo trasparente e tale da mantenere la capienza massima
costante a prescindere dall'architettura.
Io li ho sempre amati moltissimo, devo ammetterlo. Mentre ho
sempre violentemente detestato il default plain int la cui
capienza è hardware dipendente. Mi urta proprio non sapere a
priori se e quando vada in overflow.
Anche dot NET ha i tipi astratti di dimensione prefissata
ciao
Soviet
> Ciao a tutti.
>
> Vorrei utilizzare uno stesso programma su macchine ad architettura
> diversa:
> ho necessita' di utilizzare variabili con la stessa dimensione su
> macchine diverse.
>
> Il c++ supporta variabili di tipo numerico con dimensione fissa
> indipendente dalla macchina?
Lo standard corrente del C++ non supporta questi tipi.
Ma lo standard C99 li supporta:
http://en.wikipedia.org/wiki/Stdint.h
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html
Credo che il futuro standard del C++ li supporterà.
Ciao Manlio
> Lo standard corrente del C++ non supporta questi tipi.
>
> Ma lo standard C99 li supporta:
> http://en.wikipedia.org/wiki/Stdint.h
> http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html
>
> Credo che il futuro standard del C++ li supporter�.
Si, anche perche' dovrebbe prendere a "base" la stdlib del C99 come C++
odierno prende quella di C89.
Inoltre *oggi* ci sono librerie in boost. Sia una che in sostanza clona
proprio quella di C99, sia i vari giochetti templatici.
--
-riko
> Grazie a tutti per le risposte!
>
> ho trovato che in stdint.h
> sono definiti tipi interi fissi tipi int32_t, int64_t ...
>
Dove lo hai trovato?
> Qualcuno ne hai mai fatto uso? Sono affidabili?
Se è presente nel tuo compilatore non vedo perchè non dovrebbe essere
affidabile; almeno affidabile quanto il compilatore stesso.
Ciao Manlio
c'e' limits.h che te lo dice.
Tra l'altro int e' garantito essere almeno della dimensione di uno
short.
Dipende sempre e comunque dal tipo di programmi che sviluppi.
Per molti programmi, non e' necessario sapere la dimensione di int.
I limiti, si, e' utile saperli.