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

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

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




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


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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