Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: variabili con la stessa dimensione in macchine diverse

0 views
Skip to first unread message
Message has been deleted

michelangelo giacomelli

unread,
Nov 26, 2009, 12:35:00 PM11/26/09
to
SteD ha scritto:
> 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?

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.

Soviet_Mario

unread,
Nov 26, 2009, 12:54:23 PM11/26/09
to
SteD ha scritto:
> 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?

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

Manlio Perillo

unread,
Nov 26, 2009, 1:21:59 PM11/26/09
to
Il Thu, 26 Nov 2009 09:26:45 -0800, SteD ha scritto:

> 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

Enrico Franchi

unread,
Nov 27, 2009, 2:20:41 AM11/27/09
to
Manlio Perillo <manlio_p...@SPAMlibero.it> wrote:

> 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

Message has been deleted

Manlio Perillo

unread,
Nov 27, 2009, 1:29:13 PM11/27/09
to
Il Fri, 27 Nov 2009 02:30:01 -0800, SteD ha scritto:

> 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

michelangelo giacomelli

unread,
Nov 30, 2009, 3:58:29 AM11/30/09
to
Manlio Perillo ha scritto:
:)

fnegroni

unread,
Dec 1, 2009, 7:00:20 AM12/1/09
to
On 26 Nov, 17:54, Soviet_Mario <Sov...@MIR.CCCP> wrote:
> 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.
>

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.

0 new messages