LINUX.ORG.RU

Переменные в gcc .


0

0

Вот решил написать небольшую прогу , но столкнулся с проблемой. Gcc почему-то воспринимает short int , как слово , а не байт (видно это зависит от размеров регистров ). Кто знает подскажите . P.S. Прошу сильно не бить и тухлыми помидорами не закидывать, ни на чем кроме Asm в жизни не програмировал.

Используй char или unsigned char

Ogr
()

Где тут мой ящик тухлых помидоров? Пойди раздобудь где-нибудь книжку Кернигана и Ричи и прочитай про то какие типы какой размер имеют право иметь. Стандарт требует только чтобы

short int <=int<=long int

В результате в DOS было short int=16bit, int=16 bit, long=32bit. А в Linux, Win32 и прочих 32 разрядных системах short int=16bit, int =32bit, long int=32bit. А на 64 разрядных (по-моему) short=16, int=32,long=64.

Единственный мне попадавшийся компилятор, где словом short int обозначался signed char был Turbo Pascal. (который вообще не C и это соглашение соблюдать не обязан).

А в C 8-битный целый тип исторически называется char. За что Кернигана с Ричи кто только не ругал. Поскольку символы нынче (например в Java) могут и по 16 бит быть. А восемь бит это все же byte

vitus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.