Nie mogę użyć "długo długo"; z czego powinienem korzystać?W systemie Mac OS X w C++ na 64-bitowym procesorze istnieje typ 64-bitowy?
Odpowiedz
Zakładając Snow Leopard (Mac OS X 10.6.2 - Intel), "długa" jest 64-bitowa z domyślnym kompilatorem.
Podaj "g ++ -m64" i prawdopodobnie będzie to również 64-bitowy w starszych wersjach.
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))
Testowane z:
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.
Kompilacja z GCC 4.7.1 na Mac OS X 10.7.5 z opcją -std=c99
, wyjście z programu jest bardziej rozbudowana. Dzięki apalopohapa za wskazanie niedopatrzenia, którego brakowało w oryginale long long
itp.
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; })
Dodatkowo, jeśli podłączysz
int64_t * at al * są w rzeczywistości w
Poleganie na właśnie opublikowanym stole to zła rada. Jeśli chcesz 64 bity, użyj 'int64_t'. Jest standardowy z jakiegoś powodu. – asveikau
Dołącz <stdint.h>
lub <inttypes.h>
(późniejsza znajduje się na trochę więcej kompilatorów, ale oba są dostarczane przez kompilator Apple) i używać uint64_t
i int64_t
. Są 64-bitowe na 32- i 64-bitowych obiektach docelowych.
- 1. JNotify w systemie Mac OS X?
- 2. /proc/uptime w systemie Mac OS X
- 3. Aktualizacje aplikacji w systemie Mac OS X
- 4. Odinstalowywanie pakietów w systemie Mac OS X
- 5. Gdzie jest standardowa biblioteka C w systemie Mac OS X?
- 6. Jak programowo utworzyć plik C w systemie Mac OS X?
- 7. Jak uzyskać typ pliku na Mac OS X?
- 8. Jak wyliczyć woluminy w systemie Mac OS X?
- 9. Jak określić bernela jądra w systemie Mac OS X 10.6?
- 10. Powiadomienia o zmianach w systemie Mac OS X/RSS
- 11. Dziwne gniazdo RAW w systemie Mac OS X
- 12. Jak utworzyć wirtualny napęd CD w systemie Mac OS X
- 13. Jak zablokować kursor wewnątrz okna w systemie Mac OS X?
- 14. Jak zainstalować nagłówki programów Python w systemie Mac OS X?
- 15. Jak skonfigurować libusb na Mac OS X?
- 16. Mac OS X darmowe kompilator C
- 17. Oprogramowanie do śledzenia błędów w systemie Mac OS X
- 18. Jak korzystać z katalogu/home w systemie Mac OS X
- 19. Dzielenie pliku przy użyciu AWK w systemie Mac OS X
- 20. Jak uruchomić MariaDB przy starcie w systemie Mac OS X?
- 21. Koncentrują się okna Tkinter na systemie Mac OS X
- 22. Zignoruj puste wyniki dla xargs w systemie Mac OS X
- 23. Ponowne ładowanie Apache2 przez Terminal w systemie MAC OS X
- 24. W systemie Mac OS X używasz dostarczonego python lub własnego?
- 25. Błąd libusb_claim_interface w systemie Mac OS X Mountain Lion
- 26. Modyfikowanie kolorów przycisków okien w systemie Mac OS X
- 27. Gdzie NSUserDefaults przechowuje dane w systemie Mac OS X?
- 28. Jak znaleźć numer portu szeregowego w systemie Mac OS X?
- 29. POSIX Semafory w systemie Mac OS X: sem_timedwait alternatywa
- 30. Brak źródła Java w systemie Mac OS X
Dlaczego nie możesz użyć 'long long'? Czy twój kompilator go nie obsługuje? –
Jakiego kompilatora używasz? – Cameron
Czy Darwin/MacOSX obsługują typedefs o stałej wielkości, takie jak int64_t? Jeśli tak, użyłbym tych. Szczegółowe informacje można znaleźć na stronie http://www.opengroup.org/onlinepubs/000095399/basedefs/stdint.h.html. – Void