Основната () функция

Различни приложения позволяват допълнителни форми основната функция, но типът на връщане винаги е инт. Най-често Третият аргумент е преминал редица Чар * [] от указатели към променливи на средата.







Имена argc и argv може да бъде произволно, както и вида на записа тези параметри: вътр основна # 40; Int променлив ток, овъгляване ** AV # 41; е допустимо.

[Член] Определения

Основната функция се нарича, когато програмата започва след инициализация на не-местни обекти с продължителност статичната памет. Това е входната точка в програмата, която се изпълнява в условията на гост (т.е. с операционната система). Пунктове за влизане самостоятелна програма (обувка товарачи, OS ядки и т.н.), в зависимост от изпълнението.

Основните параметри функция в изпълнение с два параметъра позволяват прехвърляне на произволна среда изпълнение линия мулти-байт (обикновено аргументи на командния ред), указатели argv [1]. argv [argc-1] се отнася до първите букви от тези струни. argv [0] - указател към първия поредица от букви, прекратено mnogobabaytovoy нула, което се състои от име се използва, когато една програма повикване (или празен низ "", ако не се поддържа в средата за изпълнение.). Тези линии са променливи, въпреки че промените не се размножават обратно към средата на изпълнение: те могат да бъдат използвани, например, станд :: strtok. размер на масива, посочи от argv. е най-малко argc + 1. и последния елемент на масива argv [argc] е гарантирано да бъде нулева показалеца.







Основната функция има следните специални свойства:

1) Това е много далече може да се използва в програмата,

а) По-специално, той не може да се нарече рекурсивно;

2) Не могат да бъдат обявени и не може да бъде претоварен: всъщност основната име е запазено в глобалното пространство за функции (макар че това име може да се използва за именуване на класове, именни пространства, трансфери, както и всяко лице, които не са в глобалното пространство, с изключение на това, че функцията с. наречен "главен" не може да бъде обявена със свързването на езика C. по какъвто и пространство от имена (като се започне с C ++ 17)).

3) не може да бъде обявена като дистанционно, или да се определи свързването на С (като се излиза от C ++ 17). инлайн. статичен или constexpr.

4) Тялото на основните функции на оператора не се изисква връщане. в края на основната функция без изявление връщане ефект ще бъде същата като при извършване на връщане 0; ,

5) Изпълнение на възвръщаемост (или мълчаливо връщане, когато в края на функцията главен) е еквивалентно на нормалната функция на изхода (който унищожава обекти с автоматична живот), следвани от предизвикателство станд. излизане със същия аргумент, че е била предадена в замяна. (Std. Exit унищожаване на статични обекти и излиза от програмата).

6) Ако функцията се определя като основна функция-опитайте блок. изключения хвърлени от деструктори на статични обекти (които са унищожени, когато се обадите на станд :: изхода), не се улавят функция.

7) (започвайки с основната функция на типа Връщане C ++ 14) не може да бъде изход (авто основната # 40; # 41; # 123;. # 125; не е разрешено).

[редактиране] Бележки

Как аргументите, представени на ОС на командния ред се превръщат в масиви от многобайтови струни, които са цитирани от argv. изпълнение определена обработка на командния ред:

[Редактиране] Вижте също