Skocz do zawartości
Megabyte

C++ i 64bit

Rekomendowane odpowiedzi

Jak wiadomo wielkosc zmiennej typu int jest zależna od kompilatora. Czyli po skompilowaniu programu typowo pod Athlona64 zmienne typu int beda mialy 64bity? Dobrze myśle? W takim razie jak zadeklarować zmienna żeby niezależnie od kompilatora miała 32bit? long?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  Cytat

O ile dobrze pamiętam to int zajmuje 2 bajty więc po skompilowaniu na 64-bitowym procku dalej będzie zajmować 2 bajty. Chyba że sie mylę :)

Int zajmuje 2 bajty ale tylko po skompilowaniu pod środowisko 16bitowe. Kompilując w Visual C++ albo Builderze pod Win32 int ma 4 bajty. Tak więc analogicznie do tego int pod AMD64 powinien mieć 64bity. Ale nie jestem pewien jak to w rzeczywistości jest bo to zależy od twórców kompilatora. Może jest ktoś na forum kto będzie wiedział więcej na ten temat.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  Cytat

-m32  

-m64  

Generate code for a 32-bit or 64-bit environment. The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.



×
×
  • Dodaj nową pozycję...