в данной книге компиляторы языка
short int, либо типу
unsigned long int. Однако рассматриваемые в данной книге компиляторы языка Си, разработанные для моделей IBM PC с 16-разрядным машинным словом, при работе на IBM PC/AT с процессором Intel 80386 (имеющим 32-разрядное машинное слово) отводят для типа
int
и
unsigned int только 16 разрядов.
Спецификации типов
int и
unsigned
int широко используются в программах на Си, поскольку они позволяют наиболее эффективно работать с целыми значениями на данном компьютере. Однако, поскольку размер типов
int
и
unsigned int
является машинно-зависимым, программы, зависящие от конкретного размера типа
int или
unsigned int на каком-либо компьютере, могут быть непереносимы на другой компьютер. Переносимость программ можно повысить, если использовать для ссылки на размер типа данных операцию
sizeof.
Порядок размещения байтов в памяти для базовых целых типов следующий (по возрастанию адресов):
для типа
short — b0, b1;
для типа
long — b0, b1, b2, b3,
где b0—младший байт.
Архитектура процессора Intel 8086/88 позволяет размещать переменные различного размера в памяти, как с четного, так и с нечетного адреса. Однако в последнем случае обращение к переменным будет более медленным. В СП TC существует опция компиляции, задающая выравнивание всех объектов, занимающих более одного байта, на границу четного адреса. Память при этом будет использоваться менее эффективно, но скорость обращения к переменным возрастет. В СП MSC по умолчанию производится выравнивание на границу четного адреса. В версии 5.0 СП MSC существует опция компиляции, обеспечивающая выравнивание на границу, заданную программистом. Вопросы выравнивания структур рассматриваются в разделе 3.4.3.
Согласно правилам преобразования типов в языке Си (см. раздел 5 "Выражения"), не всегда возможно использовать в выражении максимальное или минимальное значение для константы данного типа.
Допустим, требуется использовать в выражении значение -32768 типа
short. Константное выражение -32768 состоит из арифметической операции отрицания (-),
Содержание Назад Вперед