Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

R.3.4 Начало и окончание программы





Программа должна содержать функцию с именем main(). Ей приписываетсяроль начала программы. Эта функция не является предопределеннойдля транслятора, она не может быть перегружена, а ее тип зависитот реализации. Предполагается, что любая реализация должнадопускать два приведенных ниже определения и что можно добавлятьпосле argv любые параметры. Функция main может определяться так int main() { /*... */ } или int main(int argc, char* argv[]) { /*... */ } В последнем определении argc задает число параметров, передаваемыхпрограмме окружением, в котором она выполняется. Если argc неравно нулю, параметры должны передаваться как строки, завершающиесясимволом '\0', с помощью argv[0] до argv[argc-1], причемargv[0] должно быть именем, под которым программа была запущена,или "". Должно гарантироваться, что argv[argc]==0. Функция main() не должна вызываться в программе. Связываниеmain() ($$R.3.3) зависит от реализации. Нельзя получать адресmain() и не следует описывать ее как inline или static.Вызов функции void exit(int); описанной в <stdlib.h>, завершает программу. Значение параметрапередается окружению программы в качестве результата программы. Инициализация нелокальных статических объектов ($$R.3.5)единицы трансляции происходит прежде первого обращения к функцииили объекту, определенному в этой единице трансляции. Этаинициализация ($$R.8.4, $$R.9.4, &&R.12.1, $$R.12.6.1) можетбыть проведена перед выполнением первого оператора main() илиотложена до любого момента, предшествующего первому использованиюфункции или объекта, определенных в данной единице трансляции.Все статические объекты по умолчанию инициализируются нулем ($$R.8.4)прежде любой динамической (во времени выполнения программы)инициализации. Больше никаких требований на порядок инициализацииобъектов из различных единиц трансляции не налагается. Инициализациялокальных и статических объектов описана в $$R.8.4. Деструкторы ($$R.12.4) для инициализированных статическихобъектов вызываются при возврате из main() или при вызове exit().Уничтожение происходит в обратном порядке по сравнению синициализацией. С помощью функции atexit() из <stdlib.h> можноуказать функцию, которую нужно вызывать при выходе из программы.Если было обращение к функции atexit(), объекты, инициализированныедо вызова atexit(), не должны уничтожаться до тех пор, пока непроизойдет вызов функции, указанной в atexit(). Если реализация С++сосуществует с реализацией С, все действия, которые должны былипроизойти после вызова функции, заданной в atexit(), происходяттолько после вызова всех деструкторов. Вызов функции void abort(); описанной в <stdlib.h>, завершает программу без выполнениядеструкторов статических объектов и без вызова функций, заданныхв atexit().







Дата добавления: 2015-09-04; просмотров: 378. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

ТЕРМОДИНАМИКА БИОЛОГИЧЕСКИХ СИСТЕМ. 1. Особенности термодинамического метода изучения биологических систем. Основные понятия термодинамики. Термодинамикой называется раздел физики...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Словарная работа в детском саду Словарная работа в детском саду — это планомерное расширение активного словаря детей за счет незнакомых или трудных слов, которое идет одновременно с ознакомлением с окружающей действительностью, воспитанием правильного отношения к окружающему...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия