2009-11-05 13 views
17

Eventuali duplicati:
Assuming 32bit intsInt32 Int64 vs vs Int in C#

così ho letto da qualche parte che è uguale a int Int32 in C#. È vero anche su macchine a 64 bit? Devo usare int32 solo per assicurarmi che nessuno a microsoft decida di cambiare la dimensione di int?

+3

http://stackoverflow.com/questions/164643/assunzione-32bit-int – rahul

+0

Roger quello. Non ho trovato la domanda. – Faruz

risposta

27

int è un alias per Int32

long è un alias per Int64

Le loro dimensioni non cambieranno, a tutti, basta usare qualunque uno è necessario utilizzare.

L'uso di essi nel codice non è in alcun modo collegato a macchine a 32bit e 64bit

EDIT: In riferimento ai commenti sulla sicurezza thread. Ecco una buona domanda e le risposte che descrivono tutti i problemi di cui hai bisogno di essere a conoscenza. Under C# is Int64 use on a 32 bit processor dangerous

+4

In realtà credo che per quanto riguarda la sincronizzazione dei thread, lo stato a 32 e 64 bit sarà importante, poiché la lettura di un Int64 su un processore a 32 bit richiede 2 operazioni di elaborazione, piuttosto che 1, che può essere importato per la sicurezza dei thread. – Ian

+2

@Ian: l'atomicità non è garantita per le letture int32 nella specifica della lingua comune. –

7

Su entrambe le macchine a 32-bit e 64-bit:

  • long è a 64 bit, è sinonimo di System.Int64.
  • int è 32 bit, è un sinonimo di System.Int32.
2

Semplicemente NO. I tipi sono coerenti.

7

Non devi preoccuparti. Un int è un Int32 è un intero con segno a 32 bit e che non cambierà, indipendentemente dalla piattaforma che si sta utilizzando.

Vedere Microsoft C# spec (sezione 1.3), ECMA C# spec (sezione 8.2.1) e ECMA CLI spec (sezione 8.2.2).

2

intero è a 32 bit Long è a 64 bit

Su entrambi i processori a 32 e 64 bit

1

ho usato Int32 nel mio primo anno con .NET (quindi 1.0). La maggior parte lo ha fatto per la leggibilità di linguaggi incrociati, poiché Int32 ha lo stesso aspetto in VB come in C#. Guardando indietro, vedo che tutta questa preoccupazione era sciocca. Usa i tipi nativi e non preoccuparti.