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



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

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

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

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

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

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

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

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