Студопедия — R.3.4 Начало и окончание программы
Студопедия Главная Случайная страница Обратная связь

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

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; просмотров: 357. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

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