Toto je interaktivní encyklopedie jazyka C (ISO C99) napsaná přímo v jazyce C. Můžete si ji přeložit, spustit a různě s ní experimentovat. Je navržena pro experimentování. Nejlepší zážitek poskytne vhodné IDE, kde můžete jak spustit přeloženou kapitolu, tak zkoumat nebo dokonce modifikovat zdrojové soubory. Je vytvořena v Code::Blocks a každá kapitola obsahuje odpovídající projektový soubor. Je možné ji provozovat i v jiných IDE nebo jen z příkazového řádku. Každá kapitola obsahuje i soubor Makefile.
Nemáte-li po ruce vhodné IDE, můžete si jednotlivé kapitoly přehrát a prozkoumat online v prostředí replit.com. Funguje to i bez přihlášení. I v této verzi je možné zasahovat do zdrojového kódu bez obav, že poničíte originál. Při spuštění se udělá nová kopie virtuálního počítače s Linuxem, která se po opuštění stránek smaže.
Poznámka k replit: Při zkoumání zdrojových textů nepoužívejte automatické formátování textu. Formátovač v replit dělá s víceřádkovými stringy takové psí kusy, že je pak zdrojový text téměř nečitelný.
Kapitoly 0 a 1 jsou určeny pro úplné začátečníky. Kapitola 2 je psána jednodušším stylem, aby ji mohli prozkoumat i méně zkušení programátoři. Plnotučná verze začíná od kapitoly 3.
Nejde o učebnici programování, ale může vám pomoct, když se to učíte. Mějte na paměti, že pro běžné programování není potřeba umět aktivně vše, co je v ní zmíněno.
Je to návod pro založení prvního projektu v IDE Code::Blocks pro úplné začátečníky.
Obsahuje první kroky pro úplné začátečníky s programováním. Pokud s programováním úplně nezačínáte, můžete tuto kapitolu přeskočit.
Proměnné a datové typy – Model paměti – Lokální proměnné – Zastiňování proměnných – Globální proměnné – Statické proměnné – Dynamické proměnné na hromadě (heap).
V jednodušším stylu, bez barevného výstupu a vyprávěcího módu, ale má přehlednější kód.
Podmínky – Cykly – Skoky – Rozdíly mezi výrazy a příkazy
Celočíselné typy – Racionální typy – Typ char – Logické typy – Komplexní čísla – Formátovaný tisk a čtení – Aritmetické operace – Bitové operace – Přetypování
Typový ukazatel – Netypový ukazatel – Referenční a derefernční operátory – Parametry funkcí předávané odkazem – Ukazatele na pole a struktury – Ukazatele na funkce
Procedury a funkce – Rozhraní funkce, prototypy, moduly – Parametry předávané hodnotou a odkazem – Rekurze – Funkce main a parametry příkazového řádku – Funkce vyššího řádu – Funkce s proměnným počtem parametrů
Jednorozměrná pole – Vícerozměrná pole – Výroba a používání – Pole a ukazatele – Dynamicky alokovaná pole – Realokace polí
Výroba a specifikace – Inicializace – Přístup k položkám – Načítání a tisk – Kopie a porovnávání – Dynamicky alokované struktury – Struktury a funkce – Dynamické a abstraktní datové typy – Datový typ union – Bitová pole
Stringy a pole – Stringy a ukazatele – Stringy a funkce – Formátovaný tisk a čtení – Tokenizace stringů – Stringy a čeština (a rozdíly mezi Linuxem a Windows) – Široké znaky a stringy
Soubory a datové proudy – Otvírání souborů – Zápis do souboru – Čtení ze souboru – Široké soubory – Textové vs. binární soubory – Zpracování binárních souborů
Moduly obecně – Hlavičkové soubory – Zdrojové soubory – Překlad programu s moduly – Knihovny – Vytváření knihoven
Co je to preprocesor – Komentáře – Vkládání souborů – Podmíněný překlad – Makra – Pragma direktivy překladače