Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Четырехбайтовый int


Автор: GrishinUS 9.8.2009, 15:45
Добрый день,

был сильно удивлен когда обнаружил что Openwatcom Win32 отводит 4 байта под тип int, т.е. типы int и long равномощны. Зачем так сделано? Не связано ли это с тем что 32 бит = 4 байта, т.е. как раз размер машинного слова и отсюда получается выигрыш в скорости?
Вывод диагностической программы:

Код

        Character Types
Number of bits in a character: 8
Size of character types is 1 byte
Signed char min: -128 max: 127
Unsigned char min: 0 max: 255
Default char is unsigned

        Short Int Types
Size of short int types is 2 bytes
Signed short min: -32768 max: 32767
Unsigned short min: 0 max: 65535

           Int Types
Size of int types is 4 bytes
Signed int min: -2147483648 max: 2147483647
Unsigned int min: 0 max: 4294967295

        Long Int Types
Size of long int types is 4 bytes
Signed long min: -2147483648 max: 2147483647
Unsigned long min: 0 max: 4294967295

Автор: nickless 9.8.2009, 16:09
Он не один такой, так делают все компиляторы под 32 битные винды и никсы.
Почитай: http://www.unix.org/version2/whatsnew/lp64_wp.html особенно "Technical Choices"

Автор: andrew_121 9.8.2009, 16:40
32 бита / 8 бит = 4 байта.
Что не так?

Автор: GoldFinch 9.8.2009, 17:01
GrishinUS, это заговор!

--------
по теме: Win32 какбэ говорит о том, что основное целочисленное значение (в С\C++ зовется int) имеет 32 двоичных разряда, а т.к. в винде в байте 8 двоичных разряда - получаем 4 байта
еще оно зовется dword

в win16 и других 16разрядных системах int был 16разрядным

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)