Jak na pro­jek­ty v ja­zy­ce C

© Damig, 2004 – 2023
Koncept

Navigace a typografické konvence

Čtete-li tyto stránky na mobilu, tabletu, nebo na velkém monitoru, obsah se tomu automaticky přizpůsobí tak, aby jej bylo možné číst bez potíží. Překáží-li vám menu s obsahem, je možné jej kliknutím na hlavičku menu ukrýt a později opět zobrazit. Aktuální kapitola je v obsahu vždy zvýrazněna. Na menších displejích se menu s obsahem automaticky odsouvá na konec stránky.

V některých kapitolách není nutné číst vše. Části, které vás aktuálně nezajímají klidně přeskočte. Pokud je kapitola členěna na podkapitoly, najdete mezi hlavičkou stránky a nadpisem kapitoly seznam odkazů na jednotlivé podkapitoly. Kapitoly a podkapitoly pak jsou ještě členěny na sekce.

Kapitoly není nutné číst v přesně daném pořadí. Pokud se ale chcete držet mého uspořádání, použijte odkazy na předchozí a následující kapitolu či podkapitolu v horní části každé stránky.

Navigace na stránce
Navigace mezi jednotlivými kapitolami, podkapitolami a sekcemi. Aktuálně vybraná kapitola či podkapitola je vždy zvýrazněna.

Šipka 1 ukazuje na hlavní navigační menu. Pokud kapitola obsahuje podkapitoly, je v závorce jejich počet.

Šipka 2 ukazuje na lištu pro navigaci v rámci kapitol. Odkazy vlevo a vpravo ukazují na předchozí a následující kapitolu. Pokud se nacházíte v podkapitole, odkaz se šipkami nahoru vás vrátí na začátek aktuální kapitoly.

Šipka 3 ukazuje na lištu podkapitol aktuální kapitoly.

Šipka 4 ukazuje na lištu sekcí na dané stránce.

Ukázky kódu

V textu se nacházejí ukázky kódu a příklady spouštění programů z příkazového řádku. Pro rozlišení těchto případů jsou použity jiné barvy pozadí těchto ukázek. Ukázky jsou číslované, aby se na ně bylo možné odkazovat z různých míst textu i z jiných kapitol. Podobně jsou řešeny i obrázky.

Zatímco ukázka 1 obsahuje správně napsaný příklad kódu, ukázka 2 je tzv. antiidiom, tedy takový kód, který můžete použít až poté, co vás k tomu budou nutit mučením teroristé nebo šéf v práci.

Ukázka 3 neobsahuje přímo kód v programovacím jazyce, ale příklad spouštění programu z příkazové řádky v textové konzoli, neboli shellu. Všimněte si, že příkazový řádek začíná znakem dolaru. Ten není součástí příkazu, pouze reprezentuje tzv. prompt, tedy začátek příkazového řádku. Budete-li si chtít předváděný příkaz spustit na svém počítači, tuto značku do příkazového řádku neopisujte. Všechny řádky, které nejsou označeny dolarem pak představují to, co daný příkaz vypsal na textovou konzoli po svém spuštění. Některé zde uváděné ukázky mohou obsahovat příkazy specifické pro Linux, proto nemusí fungovat v systému Windows, který má pro tyto účely své vlastní příkazy.

Krátké ukázky kódu, jako třeba int y1 = sqrt(D); mohou být přímo součástí textu. Stejně tak se v textu může objevit příkaz shellu, jako třeba gcc program.c. Jak vidíte, tyto ukázky jsou odlišeny barevně i použitím neproporcionálního písma.

/* Vrací index maximálního prvku v seřazeném poli zadané délky. */
int getMax(int *arr, int length)
{
  return length - 1;
}
Ukázka kódu celkem zbytečné funkce. Tato funkce je napsaná správně a bez chyb. Čísla řádků slouží pouze pro to, aby na ně šlo jednodušeji odkazovat z textu. Nejsou součástí kódu.
int _23(int *_x)
{
  int *x = malloc(25);
  x = _x+5;
  return x[*_x];
}
Takto ne, milé děti! To byste mohly někomu ublížit (nebo někdo vám).
$ ls -l
celkem 152
drwxr-xr-x   2 root root  4096 2009-01-20 13:42 bin
drwxr-xr-x   3 root root  4096 2009-02-04 10:37 boot
lrwxrwxrwx   1 root root    11 2008-10-04 17:25 cdrom -> media/cdrom
drwxr-xr-x  15 root root 14260 2009-02-08 16:39 dev
drwxr-xr-x 136 root root 12288 2009-02-08 16:39 etc
drwxr-xr-x   5 root root  4096 2008-10-04 17:36 home
lrwxrwxrwx   1 root root    33 2009-01-20 13:45 initrd.img -> boot/initrd.img-4.2.12-11-generic
lrwxrwxrwx   1 root root    32 2008-11-30 23:29 initrd.img.old -> boot/initrd.img-4.2.12-9-generic
drwxr-xr-x  15 root root 12288 2009-02-04 10:36 lib
drwx------   2 root root 16384 2008-10-04 17:25 lost+found
dr-xr-xr-x 143 root root     0 2009-02-08 17:38 proc
drwxr-xr-x  13 root root  4096 2009-01-14 14:22 root
drwxr-xr-x   2 root root  4096 2009-02-05 16:55 sbin
drwxr-xr-x  12 root root     0 2009-02-08 17:38 sys
drwxrwxrwt  12 root root 61440 2009-02-08 17:09 tmp
drwxr-xr-x  12 root root  4096 2008-10-04 19:57 usr
drwxr-xr-x  15 root root  4096 2008-10-28 15:18 var
lrwxrwxrwx   1 root root    30 2009-01-20 13:45 vmlinuz -> boot/vmlinuz-4.2.12-11-generic
lrwxrwxrwx   1 root root    29 2008-11-30 23:29 vmlinuz.old -> boot/vmlinuz-4.2.12-9-generic
Spustíme-li příkaz ls v kořenovém adresáři, bude to vypadat přibližně takto.

Poznámky pod čarou

Vím, že bych neměl, ale nedokážu si pomoct. Občas mě svrbí prsty a potřebuji napsat něco, co se do hlavního textu nehodí. Tyto poznámky pod čarou obvykle najdete, ehm, pod čarou.

Jednotlivé poznámky pod čarou jsou provázány odkazy. Z každé poznámky se můžete vrátit zpět k výchozímu textu kliknutím na číselné označení před poznámkou nebo tlačítkem zpět v prohlížeči.

Typografie pro hnidopichy

Stránky využívají typografické možnosti, které nabízí CSS3. Máte-li v systému nainstalované fonty, které umí slitky (ligatury) a kerning, měl by být text mnohem příjemněji čitelný. Pozná se to zejména na dvojicích a nticích znaků jako fi, ff, ft, Ta, To, VA, VAWATA, LaTeX a podobně, kde některé dvojznaky (fi) jsou slity v jeden celek a některá písmena jsou vůči sobě blíže (VA – dolní okraj písmene A začíná pod horním okrajem písmene V, ne až za ním). Podpora těchto věcí je naneštěstí v různých prohlížečích různá, ale snad to nikde nezpůsobuje problémy s čitelností.

Pro lepší čitelnost se text na větších displejích zobrazuje asi o 20% větším písmem než je normální velikost a podobně je i zvětšeno řádkování. Na menších displejích jsou velikost i řádkování nastaveny normálním způsobem, aby si je mohl prohlížeč v daném zařízení nastavit podle svého.

Na širokých displejích, pokud to umí váš webový prohlížeč, se mohou podkapitoly zobrazovat ve více sloupcích. Je to z toho důvodu, aby bylo možné pohodlně číst delší text i na širokoúhlých displejích bez nutnosti častého posouvání obsahu stránky.

Pro pohodlné čtení by měl být text zarovnán do bloku, ale protože v dnešních prohlížečích je podpora pro lámání slov na koncích řádků velice mizerná, nedělám to. V současnosti (rok 2014) je v prohlížečích nejlépe čitelný text zarovnaný vlevo.

Nezobrazuje-li se na stránkách něco správně, je možné, že používáte příliš starý webový prohlížeč (zejména IE starší než verze 8). Zkuste něco novějšího. Stránky na starších prohlížečích možná přijdou o některé grafické prvky, jako poloprůhledné boxy, vícesloupcové zobrazení textu, kulaté rohy a stíny, ale nemělo by to nijak vadit v čitelnosti obsahu. Pokud přesto narazíte na problém, dejte mi o tom prosím vědět, ideálně mi pošlete obrázek, jak ten problém ve vašem prohlížeči vypadá.