No puedo usar "long long"; ¿Qué debería estar usando?En Mac OS X en C++ en una CPU de 64 bits, ¿hay algún tipo de 64 bits?
Respuesta
Asumiendo Snow Leopard (Mac OS X 10.6.2 - Intel), entonces 'largo' es de 64 bits con el compilador predeterminado.
Especifique 'g ++ -m64' y probablemente también sea de 64 bits en versiones anteriores.
1 = sizeof(char)
1 = sizeof(unsigned char)
2 = sizeof(short)
2 = sizeof(unsigned short)
4 = sizeof(int)
4 = sizeof(unsigned int)
8 = sizeof(long)
8 = sizeof(unsigned long)
4 = sizeof(float)
8 = sizeof(double)
16 = sizeof(long double)
8 = sizeof(size_t)
8 = sizeof(ptrdiff_t)
8 = sizeof(time_t)
8 = sizeof(void *)
8 = sizeof(char *)
8 = sizeof(short *)
8 = sizeof(int *)
8 = sizeof(long *)
8 = sizeof(float *)
8 = sizeof(double *)
8 = sizeof(int (*)(void))
8 = sizeof(double (*)(void))
8 = sizeof(char *(*)(void))
probado con:
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) (dot 1) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
compilación con GCC 4.7.1 en Mac OS X 10.7.5 con la opción -std=c99
, la salida del programa es más extensa. Gracias a apalopohapa para señalar la omisión de que long long
etc. faltaban en el original.
1 = sizeof(char)
1 = sizeof(unsigned char)
2 = sizeof(short)
2 = sizeof(unsigned short)
4 = sizeof(int)
4 = sizeof(unsigned int)
8 = sizeof(long)
8 = sizeof(unsigned long)
4 = sizeof(float)
8 = sizeof(double)
16 = sizeof(long double)
8 = sizeof(size_t)
8 = sizeof(ptrdiff_t)
8 = sizeof(time_t)
8 = sizeof(long long)
8 = sizeof(unsigned long long)
8 = sizeof(uintmax_t)
1 = sizeof(int8_t)
2 = sizeof(int16_t)
4 = sizeof(int32_t)
8 = sizeof(int64_t)
1 = sizeof(int_least8_t)
2 = sizeof(int_least16_t)
4 = sizeof(int_least32_t)
8 = sizeof(int_least64_t)
1 = sizeof(int_fast8_t)
2 = sizeof(int_fast16_t)
4 = sizeof(int_fast32_t)
8 = sizeof(int_fast64_t)
8 = sizeof(uintptr_t)
8 = sizeof(void *)
8 = sizeof(char *)
8 = sizeof(short *)
8 = sizeof(int *)
8 = sizeof(long *)
8 = sizeof(float *)
8 = sizeof(double *)
8 = sizeof(int (*)(void))
8 = sizeof(double (*)(void))
8 = sizeof(char *(*)(void))
1 = sizeof(struct { char a; })
2 = sizeof(struct { short a; })
4 = sizeof(struct { int a; })
8 = sizeof(struct { long a; })
4 = sizeof(struct { float a; })
8 = sizeof(struct { double a; })
16 = sizeof(struct { char a; double b; })
16 = sizeof(struct { short a; double b; })
16 = sizeof(struct { long a; double b; })
4 = sizeof(struct { char a; char b; short c; })
16 = sizeof(struct { char a; char b; long c; })
4 = sizeof(struct { short a; short b; })
6 = sizeof(struct { char a[3]; char b[3]; })
8 = sizeof(struct { char a[3]; char b[3]; short c; })
16 = sizeof(struct { long double a; })
32 = sizeof(struct { char a; long double b; })
16 = sizeof(struct { char a; long long b; })
16 = sizeof(struct { char a; uintmax_t b; })
Además, si incluye
int64_t * at al * en realidad están en
Confiar en la tabla que acaba de publicar es un mal consejo. Si quiere 64 bits, use 'int64_t'. Es estándar por una razón. – asveikau
Incluir <stdint.h>
o <inttypes.h>
(la tarde se encuentra en algunos compiladores más, pero ambos son proporcionados por el compilador de Apple), y el uso uint64_t
y int64_t
. Son 64 bits tanto en objetivos de 32 bits como de 64 bits.
- 1. ¿Cómo comprobar si una biblioteca tiene 32 bits/64 bits incorporados en Mac OS X?
- 2. Cómo compilar Python de 64 bits en OS X 10.6 - SOLO 64 bit, sin tonterías universales
- 3. ¿Cómo compilar un programa C++ como de 64 bits en una máquina de 64 bits?
- 4. nasm/tema gcc en 64 bits de Mac OS X Lion
- 5. ¿iPhone OS es de 64 bits o 32 bits?
- 6. Problemas al ejecutar Eclipse juno 64 bits en Mac Lion
- 7. ¿Es posible compilar svdlibc en un mac (64 bits)?
- 8. ¿Aplicación de 32 bits o de 64 bits en el sistema operativo de 64 bits?
- 9. alineación uint32_t en 64 bits?
- 10. Ejecute AnyCPU como 32 bits en sistemas de 64 bits
- 11. Pregunta Quicktime de 64 bits
- 12. ¿Puedo instalar Python 2.7.1 de 64 bits junto con una instalación de 32 bits existente en OS X?
- 13. SendInput falla en 64 bits
- 14. sizeof (long) en 64 bits C++
- 15. Aplicaciones Java de 64 bits: ¿Se requiere un SO de 64 bits, un JRE de 64 bits y una Aplicación de 64 bits?
- 16. Haskell tipo numérico de 64 bits
- 17. Diferencia entre "Mi Mac de 32 bits" y "Mi Mac de 64 bits" en Xcode 4?
- 18. Servidor Subversion en Windows de 64 bits?
- 19. Registros de 64 bits en ventanas de 32 bits
- 20. Boost.Test en Windows de 64 bits
- 21. FindNextFile falla en Windows de 64 bits?
- 22. Crear GMP en Windows de 64 bits
- 23. 64 bits por división de 32 bits
- 24. ¿Es ctypes.c_long de 64 bits de Python en sistemas de 64 bits?
- 25. 64 bits ODBC Excepción
- 26. En sistemas de 64 bits, ¿una columna de 32 bits ocupa menos espacio que uno de 64 bits?
- 27. ¿Ventajas/inconvenientes de ejecutar JVM de 64 bits en un servidor Linux de 64 bits?
- 28. C Alineación de punteros de 64 bits
- 29. Interoperabilidad de 32 y 64 bits en Windows de 64 bits
- 30. ¿Puedo cargar una DLL de 32 bits en un proceso de 64 bits en Windows?
¿Por qué no puedes usar 'long long'? ¿Tu compilador no lo admite? –
¿Qué compilador estás usando? – Cameron
¿Darwin/MacOSX es compatible con los tipos enteros de tamaño fijo, como int64_t? Si es así, los usaría. Ver http://www.opengroup.org/onlinepubs/000095399/basedefs/stdint.h.html para más detalles. – Void