2009-11-05 20 views
17

Duplicar posible:
Assuming 32bit intsInt32 Int64 vs vs Int en C#

así que leí en alguna parte que es igual int int32 en C#. ¿Es cierto también en máquinas de 64 bits? ¿Debo usar int32 solo para asegurarme de que nadie en microsoft decida cambiar el tamaño de int?

+3

http://stackoverflow.com/questions/164643/assuming-32bit-ints – rahul

+0

Entendido. No pude encontrar la pregunta. – Faruz

Respuesta

27

int es un alias para Int32

long es un alias para Int64

Sus tamaños no va a cambiar, en absoluto, sólo tiene que utilizar lo que uno tiene que utilizar.

El uso de ellos en su código no es de ninguna manera relacionada con máquinas de 32 y 64 bits

EDIT: En referencia a los comentarios acerca de Seguridad para subprocesos. Aquí hay una buena pregunta y respuestas que detallan cualquier problema que debe tener en cuenta. Under C# is Int64 use on a 32 bit processor dangerous

+4

En realidad creo que cuando se trata de enhebrar la sincronización va a importar el estado 32 y 64 bits, como leer un Int64 en un procesador de 32 bits requiere 2 operaciones de procesamiento, en lugar de sólo 1, que puede ser de importación para la seguridad de los subprocesos. – Ian

+2

@Ian: atomicidad no está garantizada para int32 lee ya sea en la especificación del lenguaje común. –

7

en ambas máquinas de 32 bits y 64 bits:

  • long es de 64 bits, que es un sinónimo de System.Int64.
  • int es de 32 bits, que es sinónimo de System.Int32.
2

Simply NO. Los tipos son consistentes.

7

Usted no necesita preocuparse. Un int es un Int32 es un entero de 32 bits, y que no va a cambiar, independientemente de la plataforma que está utilizando.

Véase la (sección 1.3) Microsoft C# spec, la (sección 8.2.1) y la ECMA C# spec (sección 8.2.2) ECMA CLI spec.

2

entero es de 32 bits largo es de 64 bits

En ambos procesadores de 32 y 64 bits

1

he usado Int32 en mi primer año con .NET (entonces 1.0). Lo hizo principalmente para la legibilidad en varios idiomas, ya que Int32 tiene el mismo aspecto en VB que en C#. Mirando hacia atrás, veo que toda esta preocupación fue tonta. Utiliza tipos nativos y no te preocupes.