Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Результат работы программы. Модификация расположения объектов в оперативной памяти




Пример

Модификация расположения объектов в оперативной памяти

Пример

Пример

Пример

Модификация объектов

Модификация или видоизменение объектов в языке Си применяется для того, чтобы расширить или, наоборот, сузить диапазон значений или область действия объекта. Инструкции, которые применяются для модификации, называются модификаторами.

Модификатор unsigned. Предназначен для того, чтобы объявлять переменные типов short, int, long беззнаковыми. Если переменную сделать беззнаковой, то при этом расширяется числовой диапазон абсолютного значения переменной. Это происходит из-за того, что один бит, который использовался под знак, используется под число.

-32768 <= int i <= 32768

О <= unsigned int i <= 65535

Пример

unsigned int i; unsigned long j;

Явная модификация типа данных применяется, когда необходимо явным образом изменить тип переменной, например, в том случае, когда результат вычисления выходит за границы ранее присвоенного переменной типа.

 

main()  
{  
int i,j;  
long k;  
i= 30000;  
j= 20000;  
k= i+j; /^ОШИБКА!! i -k /

printf("\n%d+%d=%ld", i, j, k); }

Несмотря на то, что к объявлена как long, результат вычисления выражения

i+J получается типа int, поскольку / и j объявлены как int. В то же время значение

выражения выходит за границу типа int. Для того, чтобы не было ошибки,

необходимо модифицировать переменные следующим образом:

k=(long)i+(long]j;.

Таким образом, если необходимо явным образом изменить тип данных, который используется в выражениях, то перед объектами в круглых скобках нужно указать тот тип, который необходимо получить.

Модификатор extern предназначен для использования в данном программном модуле объекта, который объявлен в другом отдельном модуле.

extern тип объект 1, объект 2,...,объект п;

Модификатор static. При выполнении программы объекты могут быть расположены либо по фиксированным адресам оперативной памяти, либо по произвольным адресам по мере того, как эти объекты появляются.

Если объект расположен по некоторому фиксированному адресу, то он называется статическим (типичный пример — глобальные переменные).

Объект, который располагается в произвольном месте оперативной памяти, называется динамическим (пример — все локальные объекты). Если необходимо динамический объект сделать статическим, то используется модификатор static.

Переменные, объявленные с модификатором static сохраняют свои значения при входе и выходе из функции, однако не являются глобальными.

 

#. include <stdio .h>  
void stat( void)    
{        
  static int k= = 1;  
  printf ("\t k=%d" ,k);
  k++;      
}        

main()

{ int i;

for(i=0; i<5; i++) stat (); }

k=l k=2 k=3 k=4 k=5

Переменная к в функции stat зафиксирована в оперативной памяти. Инициализация к проводится только один раз — при первом вызове функции переменной к присваивается значение 1. При втором обращении к функции stat инициализация переменной к не будет производиться и на экран выведется 2. Значение к сохраняется в оперативной памяти, однако переменная не доступна из функции main.

Модификатор register. Модификатор предназначен для того, чтобы поместить переменную в один из регистров общего назначения процессора. Благодаря этому повышается скорость работы с данными. Это необходимо для создания управляющих программ, требующих высокую скорость обработки данных.




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 392; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.