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:
1
2
3
4
5
6
7
#include <stdio.h> (1)
/* můj první program */ (2)
int main(int argc, char **argv) (3)
{
printf("hello world!\n"); (4)
return 0; (5)
}
| 1 | Direktiva, vkládající hlavičkový soubor stdio.h |
| 2 | Komentář |
| 3 | Definice funkce main |
| 4 | Tisk Hello world! na konzoli |
| 5 | Konec programu a vrácení návratové hodnoty |
Nyní si rozebereme každý řádek zvlášť. První řádek uvozený znakem # představuje použití direktivy.
Direktiva #include říká preprocesoru, ž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).
/* blokový komentář
Takto můžeme zakomentovat třeba velký kus kódu.
Nebo napsat popis programu */
// toto je řádkový komentář
Na další řádce máme ukázku komentáře.
V původní verzi jazyka C existuje pouze jediný typ komentáře, a to blokový komentář /* */.
V novější vezi (ve standardu C99) je navíc řádkový komentář, který začíná // a končí s koncem řádku.
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 funkce main, neboť jde o vstupní bod programu -— odtud program vždy začíná. [1]
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!
Pokud nemáme překladač gcc k dispozici (uživatelé OS Windows ho musí instalovat) je možné použít Online C Compiler, který běží na internetu a funguje v prohlížeči. Lepší je w3schools C kompilátor — hlásí chyby.