Рекомендации

Рекомендации

     Какие переменные целого типа со знаком лучше всего использо вать? Одной из целей введения в язык трех классов целых чисел, имеющих различные размеры, было предоставить возможность согласования типа переменной с требованиями задачи. Например, если переменная типа int занимает одно слово, а переменная типа long - два, то тип long позволяет обрабатывать большие числа. Если в вашей задаче такие большие числа не используются, то незачем и вводить в программу переменную типа long, так как, если вместо числа, занимающего одно слово памяти, используется число, занимающее два слова, работа машины замедляется. Вообще говоря, необходимость введения данных типа long целиком зависит от вашей вычислительной системы, поскольку под данные типа int на одной машине может отводиться больше памяти, чем под данные типа long на другой. В конце мы еще раз хотим напомнить вам, что обычно вполне достаточно использовать переменную типа int.

Что происходит, когда в процессе обработки данных появляется значение, лежащее вне того диапазона чисел, которому соответствует данный целый тип? Давайте присвоим некоторой переменной целого типа наибольшее возможное значение, выполним операцию сложения и посмотрим, что произойдет

/* переполнение */

main( )

{

   int i = 32767,

   printf( %d  %d  %d , i, i+l, i+2),

}

Ниже приведен результат работы этой программы, выполненной на нашей вычислительной системе

3

     Целая переменная i ведет себя здесь как одометр2)  в машине. Когда его показания достигают максимума, данная величина "сбрасывается", и все начинается сначала. Основное отличие состоит в том, что показания одометра растут, начиная с нуля, а значения нашей переменной типа int - с величины - 32768.

     Заметим, что при этом вам не сообщают, что переменная i превысила максимальное значение Для регистрации подобных событий вы должны использовать свои программные средства.

     Описанный подход не вытекает непосредственно из правил языка Си, а является довольно распространенным способом реализации.