main () függvény
Különböző megvalósítások hogy további formáit a fő funkciója, de a visszatérési típus mindig int. Leggyakrabban a harmadik argumentum vezetjük egy sor char * [] A mutatók környezeti változókat.
Nevek argc és az argv lehet önkényes, valamint a felvétel-típusnak a következő paraméterekkel: int main # 40; int AC, char ** av # 41; akkor megengedett.
[Rule] meghatározások
A fő funkciója az úgynevezett amikor a program elindul, miután az inicializálás nem helyi objektumok statikus tárolási időtartamát. Ez a belépési pont a program, amelynek végrehajtására a vendég környezetben (azaz az operációs rendszer). Belépési pontjai önálló program (rendszerbetöltők, OS kernel, stb) függ a végrehajtás.
fő funkciója a paramétereket a kiviteli alakban két paraméterek lehetővé teszik átadása tetszőleges több byte-os vonal végrehajtási környezetet (általában parancssori paramétereket), pointerek ARGV [1]. argv [argc-1] lásd az első karakter stringek. argv [0] - egy mutatót az első karakterlánc megszűnik mnogobabaytovoy nulla, ami tartalmaz egy nevet használni, amikor egy programot hívást (vagy egy üres string „”, ha nem támogatja a végrehajtási környezet.). Ezek a sorok változó, bár a változások nem szaporítják vissza a végrehajtási környezet: lehet őket használni, például a std :: strtok. a tömb méretét által mutatott argv. legalább argc + 1. és az utolsó elem a tömb argv [argc] garantáltan null-mutatót.
Fő funkciója a következő tulajdonságokkal rendelkeznek:
1) Meg sehol lehet használni a programot,
a) Különösen azt nem nevezhető rekurzívan;
2) Nem lehet nyilvánítani, és nem lehet túlterhelt: valójában a nevét fő számára van fenntartva, a globális névtér funkciók (bár ez a név is használható az elnevezés osztályok, névterek, transzferek, és bármely olyan egység nem a globális névtér, kivéve, hogy a funkció. nevű „fő” nem nyilvánítható a kötődés a C nyelv minden névtér (kezdve a C ++ 17)).
3) Nem lehet bejelentett távoli, vagy hogy meghatározza a kötődését C (kiindulási anyagként a C ++ 17). inline. statikus vagy constexpr.
4) A testület fő funkciója az üzemeltető nem köteles vissza. a végén a fő funkciója nélkül bevallásának hatása ugyanaz lesz, mint amikor teljesítő return 0; .
5) teljesítménye visszatérési (vagy implicit vissza, amikor a végén a funkció fő) egyenértékű a normális működéséhez a kimenet (amely tönkreteszi tárgyak automatikus élettartam) történő kihívás követett std. kilépés ugyanazon érv, hogy már továbbított cserébe. (Std. Exit elpusztítja statikus objektumok és kilép a program).
6) Ha a funkció határozza meg, mint a fő funkciója-try-blokk. kivételek dobott destruktorok statikus objektumok (a megsemmisített, ha hívja a std :: kilépés), nem fogott a funkciót.
7) (kezdve a C ++ 14) visszatérési típusa fő funkciója nem lehet kimenet (auto fő # 40; # 41; # 123;. # 125; nem engedélyezett).
[Edit] Megjegyzések
Hogy az érveket adott a parancssorban OS alakítjuk tömbök több byte-os húrok által hivatkozott argv. megvalósítástól parancssor feldolgozása: