Kompilace kódu v jazyce C
Kompilace je proces, během kterého dochází k převodu zdrojového kódu (textu) do spustitelného (binárního) souboru zapsaného pomocí procesorových instrukcí.
Zjednodušeně bychom ji mohli ukázat následovně:

Kompilace se skládá z následujících kroků:
- textový editor – tvorba kódu s příponou .c
- preprocesor – smaže zbytečné znaky (mezery, entery, komentáře), celý kód bude napsán na jednom řádku
- hlavičkový soubor (.h) – určuje funkce, které chci využívat; přípona .h,
- např. stdio.h, math.h, string.h
- kompilátor– vytváří kód relativních adres – funkce kódu jsou nahrazeny odkazy do hlavičkového souboru, kde se tyto funkce nacházejí
- .obj – kód relativních adres
- lis – obsahuje pouze informace, které hlavičkové soubory jsou použity
- linker – vytváří binární soubor, potřebuje knihovny (převádějí funkce na binární kód), v knihovnách jsou funkce rozepsány pomocí procesorových instrukcí. Nahrazuje relativní adresy konkrétními funkcemi z daných knihoven. V knihovnách jsou funkce zapsány v asembleru.
- .exe – binární soubor – aplikace
- debugger – kontroluje kód
Během programování a následného ladění kódu se můžeme setkat s chybami. Dva základní typy chyb jsou:
- syntaktické – závorka, znaménko, …
- logické – program funguje jinak, než má
Syntaktické chyby odhalí již kompilátor (vrátí popis chyby). Logické chyby můžeme odhalit například pomocí debuggeru.
Srovnání kompilovaných vs. interpretovaných programovacích jazyků
| Kompilovaný programovací jazyk | Interpretovaný programovací jazyk |
|---|---|
| Zdrojový kód se musí zkompilovat (provádí kompiler), aby se z něj dostal strojový kód (spustitelný soubor). | Zdrojový kód se interpretuje v průběhu vykonávání programu. |
| + rychlejší běh programu + syntaktické chyby odhaleny už při kompilaci + bezpečnější (distribuce bez zdrojového kódu) | + rychlejší vývoj a ladění + přenositelnost |
| – delší čas potřebný na kompilaci – spustitelný soubor vázán na platformu | – viditelný zdrojový kód – vyšší nároky na systém |
Co obsahuje soubor s příponou .c?
Zdrojový kód (text) v jazyce C.
Z jakého bloku vychází spustitelný soubor?
Z linkeru.
Do jakého bloku jdou soubory s příponou .h?
Do preprocesoru.
Co je to soubor .h?
Hlavičkový soubor. Obsahuje například funkce, které budeme dále využívat. Např. stdio.h
Jakou příponu má spustitelný soubor v Microsoft (R) Windows(R)?
exe
Jaký blok odstraňuje mezery a komentáře?
Preprocesor.
Co dělá preprocesor?
Spojuje soubory .c a .h, odstraňuje netisknutelné znaky a komentáře.
Co vytváří linker?
Binární soubor (spustitelný soubor).
Jak se jmenuje blok, který odhalí syntaktické chyby?
Compiler.