КАТЕГОРИИ: Архитектура-(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) |
Понятие о прототипе. Компиляция
Внешние переменные и процедурная абстракция Существуют две категории переменных в программе, написанной на языке Си: · локальные, · внешние (глобальные). Локальными переменными называются переменные, объявленные в теле функции. Внешние переменные – это переменные, объявленные вне функций. Память для внешних переменных выделяется в статической области основной памяти. Все переменные, память для которых выделяется в статической области принято называть статическими. Время статических переменных совпадает со временем выполнения программы. Локальные переменные – это переменные, относящиеся к реализации функции. Память для таких переменных по умолчанию выделяется в стеке. Принято переменные, память для которых выделяется в стеке, называть автоматическими. Локальную переменную можно разместить в статической области памяти. Для этого в ее определении следует использовать зарезервированное слово static. Примером переменной, которую следует объявлять внутри функции, является счетчик цикла.[1] Укажем на одно полезное нововведение стандарта C99, которое касается объявления локальных переменных. Дело заключается в том, что этот стандарт разрешает объявлять переменные внутри инструкции for. Причем область видимости этой переменной ограничивается телом цикла. Например: /* Стандарт С89 */
Понятие прототипа вначале появилось в языке C++. Затем оно было заимствовано языком Си, что нашло отражение в стандарте С89. Прототипом функции может служить ее заголовок, после которого поставлен символ точка с запятой. В прототипе необязательно указывать имена формальных параметров. Прототип для разработанной выше функции max2() может быть записан в одном из следующих видов: double max2(double a, double b); double max2(double, double); Предпочтительнее указывать в прототипах имена параметров, наделяя их мнемоническим смыслом. Это повышает читабельность программы. Прототипы необходимы для корректной компиляции вызова функции. Следует отметить, что стандарт с89 не был последовательным в отношении использования прототипов. Он в отличие от языка С++ допускал компиляцию вызова функции при отсутствии прототипа. В этом случае компилятор создавал так называемое неявное объявление функции, которое имеет следующий формат: int имя (); Пустые круглые скобки являются для компилятора указанием на то, что ему не предоставляется информация о формальных параметрах объявляемой функции. В стандарте С99 неявные объявления больше не поддерживает. /* Стандарт С99 */
Дата добавления: 2014-01-06; Просмотров: 376; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |