Linux E X P R E S

Facebook

Programovanie v jazyku C++: Funkcia main()

cplusplus.png

V tomto článku začneme vysvetľovať základné piliere potrebné pri programovaní v jazyku C++. Predstavíme si veľmi dôležitú funkciu main() a ďalšie nutné príkazy, o ktorých by ste mali vedieť.


Funkcia main()

Funkcia main() ma nasledovnú štruktúru:

int main()
{
  …rôzne príkazy…
  return 0;
}

Poďme si to rozobrať. Riadok int main() nazývame hlavičkou funkcie. V oblasti zložených zátvoriek sa nachádza telo funkcie. Pre bližšie vysvetlenie, main() chápeme ako rozhranie programu a v tele funkcie sa nachádzajú jednotlivé príkazy určené pre procesor počítača.

V jazyku C++ sú rôzne príkazy oddelené symbolom ; (bodkočiarka; česky středník, pozn. šéfred.). Za každým príkazom píšeme bodkočiarku. Tak odlíši procesor jednotlivé príkazy, ktoré mu adresujeme, aby vykonal.

Na čo ale slúži rozhranie funkcie main()? Čo sa odohráva za pozadím? Funkciu main() píšeme pri každom programe. Princípom v jazyku C++ je aktívovanie a resp. volanie funkcie inou funkciou.

Hlavička funkcii, čiže int main() popisuje rozhranie medzi funkciou volajúcou a funkciou volanou. Pri každej funkcii píšeme pred menom návratový typ funkcie, čiže to, čo vráti volaná funkcia volajúcej funkcie.

Aj funkcia main() je ako ostatné funkcie. Narozdiel ale od nich funkciu main() volá štartovací kód kompilátoru. Je aktivovaná kompilátorom. Vykoná sa tak všetko, čo je vo funkcii main(). Môžme to brať ako komunikáciu medzi kompilátorom (operačný systém) a vaším zdrojovým kódom.

Všimnite si, že funkcia main() obsahuje (). Vo vnútri okrúhlych zátvoriek definujeme parametre, ktoré získa od volajúcej funkcie. V tomto prípade žiadne argumenty nepotrebujeme. Funkcia main() má návratovú hodnotu int. Je to celočíselná hodnota. Volaná funkcia main() a teda aj celý program tak vráti celočíselnú hodnotu.

Na korektné ukončenie funkcie main() a poslanie návratovej hodnoty od funkcii volanej pre funkciu volajúcu sa využíva príkaz return. Návratová hodnota 0 signalizuje, že program skončil úspešne. Iné hodnoty sa používajú ako chybové kódy. Možno potom pri spúšťaní z dávok alebo z iných programov správne reagovať na úspešný či neúspešný koniec programu (a prípadne ešte rôzne podľa konkrétnych chýb).

Ešte upozornenie: funkciu int main() nijak nemeníte, inak kompilátor vám vyhodí chybu. Nepíšeme hlavičku funkcie ako INT main(), ani int MAin()ani inak. Stále majte na pamäti, že sa to píše presne tak, ako sme si na začiatku definovali. Jazyk C ++ je citlivý na veľkosť písmen.



Predprocesor a súbor iostream

Funcia main() vám nestačí na to, aby ste rozbehli program. Potrebujete predprocesor. Zachvíľu si vysvetlíme, čo je zač. Najprv sa zoznámte s kusom kódu:

#include <iostream>
using namespace std;

Ak by vám to nešlo skompilovať, máte starší kompilátor. Staršie kompilátory majú radšej takúto definíciu:

#include <iostream.h>

Ak by ste ale použili takúto deklaráciu na najnovších kompilátorov, dostali by ste pár milých slov od kompilátora.

Poznámka šéfredaktora: Na kompilátor požadující uvedenou starší syntaxi (resp. na strukturu standardních hlavičkových souborů, z nichž pak syntaxe vychází) byste už dnes neměli nikde narazit – maximálně tak u nějakých starých unixových strojů. GNU Compiler Collection již velmi dlouho podporuje C++ podle standardu ISO, kde je obsažena první ze syntaxí (druhá nikdy standardizována nebyla).

Predprocesor je program, ktorý spracuje zdrojový program tak, aby ho prevzal hlavný kompilátor. Kompilátor môžeme tiež považovať za predprocesor. Predprocesor okrem iného spracováva direktívy začínajúcich symbolom #. Za symbolom pokračuje:

include <iostream>

Slovo include tu znamená, že niečo sa pridá na toto miesto. Konkrétnejšie, predprocesor pridá obsah hlavičkového súboru iostream do zdrojového programu. Tak získa kompilátor potrebné informácie k naštartovaniu kompilácie. Hlavnou úlohou predprocesorov je pridávať a meniť text pred samotnou kompiláciou. Je možné si definovať vlastné predprocesory. Ale o tom neskôr v ďalších častiach seriálu.

Odkiaľ sa ale vzalo slovo iostream? Prvé dve písmena, io odkazuje na štandardný vstup/výstup. Je to komunikácia programu so „svetom“. Tým svetom sa myslí napríklad človek, ktorý spustí aplikáciu a zadá nejaké údaje a zároveň čaká zobrazenie informácie na monitore. Celá direktíva #include <iostream> tak pošle kompilátoru obsah súboru iostream a obsah súboru vášho zdrojového kódu.

Hlavičkový súbor iostream neexistuje vo vzduchoprázdne. Definuje rozhrania k funkciám zo štandardnej knižnice, ktorá sa k programu v rámci komplikačního procesu prilinkuje.

Na koniec, ako rozohriatie do budúcej časti, si dáme plnohodnotný fungujúci program, ktorý si môžete vyskúšať. Skúste prísť sami, čo robia jednotlivé príkazy. V ďalších častiach sa na ne zameriame podrobnejšie.

Príklad 1:

#include <iostream>

using namespace std;

int main()
{
  char meno[50];
  cout << "Zadaj svoje meno: ";
  cin >> meno;
  cout << "Ahoj "<<meno<<", zdraví ťa HAL-9000.\n";
  cout << "Som superinteligetná bytosť, riadiaca túto loď a rútime sa k planéte Jupiter.\n";
  cout << "Ja viem, otravujem ťa pri učení jazyka C++, fajn mlčím a držím palce!\n";
  return 0;
}

Diskuze (4) Nahoru