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



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

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

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

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

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

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