na obsah klávesové zkratky na hlavní stránku na menu

První program v C

V této sekci je zmíněn význam hlavičkových a zdrojových souborů, dále je uvedena a stručně popsána funkce main() a printf(). Na závěr je uvedeno doporučené pravidlo pro pojmenování zdrojových souborů. Výše uvedené pojmy jsou použity v programu „Hello world”.

Zdrojový kód

Je již zažitým pravidlem, že první program v jakémkoliv programovacím jazyce nutně musí být „Hello world”, neboli počeštěně „Ahoj světe”. Důvod je jednoduchý, vypsat něco na výstup patří k nejzákladnějším programovým operacím a také jde o primární ladící nástroj. V následujícím textu bude předveden zdrojový kód v čistém ANSI C.

Zdrojový kód všech běžných programovacích jazyků je obyčejný textový soubor, tzn. že pro vývoj můžeme použít libovolný textový editor (neplést s pojmem textový procesor, jímž jsou označovány programy jako je např. OpenOffice Write nebo Microsoft Word, nicméně při velké snaze a pevných nervech by šel psát zdrojový kód i v nich). Nejprve si tedy otevřeme oblíbený textový editor (lze využít i mnohá vývojová prostředí, pro tyto účely je to ale „braní kanónu na vrabce”) a napíšeme do něj následující kód:

#include <stdio.h>
/* můj první program */
int main(int argc, char **argv)
{
  printf("hello world!\n");
  return 0;
}

Nyní si rozebereme každý řádek zvlášť. První řádek uvozený znakem # představuje použití direktivy. Direktiva #include říká překladači, že má na toto místo vložit zadaný soubor, v tomto případě stdio.h. Soubory s příponou .h jsou tzv. hlavičkové soubory. Lze se na ně dívat jako na rozšíření schopností jazyka. Jazyk C je v základu velmi minimalistický, jeho schopnosti lze ale značně rozšířit připojením vhodného hlavičkového souboru. Soubor stdio.h obsahuje funkce pro práci se vstupem a výstupem (input-output, IO).

Na další řádce máme ukázku komentáře. V jazyce C existuje pouze jediný typ komentáře, a to blokový komentář /* */ (ve standardu C99 je navíc řádkový komentář). Vše, co je uvozeno mezi hvězdičkami, je při zpracování kódu ignorováno. Komentáře jsou velmi mocný nástroj a nemělo by se jimi šetřit při vysvětlování kódu (v budoucnu si pak programátor ušetří mnoho času, který by strávil luštěním cizího nebo i svého kódu).

Dostáváme se k jádru programu, kterým je funkce main(). Tato funkce je základem každého programu v jazyce C. V každém programu musí být právě jedna, neboť jde o vstupní bod programu—odtud program vždy začíná. Bližší vysvětlení týkající se tvaru funkce a jejích parametrů je podáno v sekci o funkcích. V těle funkce main() se nachází jediná funkce printf(). Tato funkce pochází z hlavičkového souboru stdio.h a jejím prostřednictvím je možné vypisovat formátovaný text. My pro jednoduchost vypíšeme pouze text hello world!. Znak \n patří mezi řídící znaky, což jsou metaznaky pro často používané netisknutelné znaky. \n symbolizuje znak nového řádku. Funkci main() ukončíme voláním return 0, což znamená, že na tomto místě funkce končí a návratová hodnota je nula (tedy říkáme, že program doběhl bez chyby).

Pojmenování

Hotový zdrojový soubor je nutné uložit pod vhodným pojmenováním. Pro zdrojové soubory v C je vyhrazena přípona .c. Výše uvedený program by tedy mohl být uložen v souboru hello.c. Pro každý program je dobré vytvořit samostatný adresář a tam udržovat všechny zdrojové soubory programu. Pro překlad lze použít překladač GCC. Teorii překladu zdrojového kódu je věnována následující sekce.

Pokud program přeložíme a spustíme, měli bychom obdržet následující výstup:

Hello world!