| | |
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.05 Príspevky: 13348 Témy: 1496 Bydlisko: Bratislava | Napísal JanoF: 30.09.2005 22:53 | |
|
Stručně o jazyku C
Historie jazyka C počíná okolo roku 1969 a souvisí se vznikem operačního systému UNIX. Systém UNIX byl postupně s několika mezistupni nakonec vyvynut v Bellových laboratořích (AT&T) a na jeho vývoji se v prvotních fázích podíleli především D. Ritchie, B. Kernighan a K. Thompson.
Později bylo nutné vyvinout programovací jazyk nízké úrovně, v němž by mohl být UNIX přepsán. Prvotním základem byl jazyk BCPL (vytvořil Martin Richards). V roce 1970 z něj byl vyvinut jazyk B (Ken Thompson). Jazyk B byl použit pro implementaci OS UNIX na počítači PDP-7. Oba tyto jazyky (BCPL a B) pracovaly pouze s jedním datovým typem - slovem.
V roce 1978 Kernighan a Ritchie vydali v nakladatelství Prentice Hall "The C programming language" - knihu popisující zcela nový procedurální jazyk s podporou různých datových typů. V této knize tedy veřejně prezentovali jazyk C.
V roce 1990 byla zveřejněna norma ANSI C. Do normy je zahrnuta také množina knihovních funkcí, kterou by měl každý překladač poskytovat.
Základní charakteristika jazyka C
- Jazyk nízké úrovně, jazyk pro systémové programování. Postupně přebíral rysy vyšších programovacích jazyků.
- Pole a řetězce nejsou jazykem přímo podporovány – vše řeší ukazatelová aritmetika.
- Standard ANSI C – přenositelnost na úrovni zdrojového kódu nezávisle na hardwaru počítače.
- Z důvodu přenositelnosti C neobsahuje příkazy vstupu a výstupu, protože jsou přímo závislé na hardwaru a operačním systému počítače, což popírá přenositelnost. Proto jsou implementovány jako knihovní funkce.
- Malá množina příkazů jazyka usnadňuje rychlé vytvoření překladače pro nové platformy a rychlé zvládnutí jazyka.
- Má velice efektivní kód - téměř se vyrovná assembleru.
Rysy jazyka - programové konstrukce
Základní řídící konstrukce strukturovaných programů:
- sdružování příkazů do bloků
- podmíněný příkaz if ... else
- cykly s proměnnou na začátku a na konci
- výběr z množiny alternativ pomocí příkazu switch ... case
Podpora ukazatelové aritmetiky:
- základní operace nad ukazateli a adresami
- snadná práce s dynamickými poli
Funkce:
- každou funkci lze volat rekurzivně
- definice funkcí nesmí být vnořené, všechny funkce jsou globální v jednom zdrojovém souboru
- funkce lze překládat odděleně - každou zvlášť
Proměnné - paměťové třídy
- lokální proměnné - statické a automatické
- globální - externí
- překladači lze doporučit, aby pro uložení vybrané proměnné používal registr - zvýšení efektivnosti
Jazyk C není příliš přísný v kontrole typů, předávaných parametrů a mezí polí.
Nevýhody jazyka C
- Priority některých operátorů.
- Drobné odchylky překladačů od normy.
- Chybějící kontrola typů a indexů.
Omezení ANSI C kompilátorů
Norma ANSI C určuje minimální požadavky na každý překladač jazyka C. Toto je nutné znát pro psaní přenositelného kódu.
požadavky:
- max. 15 úrovní zahnízdění bloků, iterací, podmíněných příkazů a přepínačů
- max. 6 úrovní zahnízdění podmíněného překladu
- max. 12 dodatečných typových modifikátorů základního typu v definici nebo deklaraci proměnné, funkce, pole či ukazatele
- max. 127 úrovní zahnízdění závorek ve výrazech
- max. 31 platných znaků v identifikátorech
- max. 6 platných znaků u externích identifikátorů
- max. 511 externích identifikátorů v jednom zdrojovém souboru
- max. 127 identifikátorů s platností v jednom bloku
- max. 1024 jmen maker definovaných v jednom zdrojovém souboru
- max. 31 parametrů funkcí
- max. 31 parametrů maker
- max. 509 znaků v jednom řádku zdrojového souboru
- max. 509 znaků v jednom řetězcovém literálu
- max, 32767 bytů dlouhé pole nebo struktura
- max. 8 úrovní zahnízdění v #include souborech
- max. 257 variant case v příkazu switch
Převzato z přednášek Mgr. Tomáše Kozla, Katedra informatiky a kvantitativních metod, Fakulta informatiky a managementu, Univerzita Hradec Králové.
By Lukaas
|
|
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| FAQ: Stručný popis nForce2 chipsetů a nastavení v nVidia čipové sady | 0 | 2647 | 11.06.2005 16:58 Dzin | | Stručný popis chipsetů NForce 3 a 4 v nVidia čipové sady | 1 | 3887 | 05.03.2006 7:56 Harlequin | | Pretaktovanie i5 2500K - stručný návod (anglicky) v Biosy a ladenie výkonu | 0 | 582 | 11.02.2012 14:53 mino_85 | | smazání historie www v Sieťové a internetové programy | 7 | 780 | 05.04.2007 23:51 crash24 | | Skype-mazanie historie v Sieťové a internetové programy | 3 | 1872 | 16.12.2012 22:18 bart1234 | | Popis-None v Redakčné systémy | 2 | 598 | 08.12.2006 22:21 altt | | Popis Diskusie v Správy pre vedenie fóra | 3 | 1166 | 07.06.2006 17:17 Spirit | | Popis obrazku v PHP, ASP | 10 | 686 | 17.11.2007 12:15 legolas1 | | PASCAL -> historie + základy v Assembler, C, C++, Pascal, Java | 5 | 11688 | 14.01.2007 12:50 middlesboro | | Obnovenie histórie - google chrome v Bezpečnosť a firewally | 0 | 2376 | 13.04.2012 14:48 zuzulka | | Vymazanie historie z FB v Sociálne siete | 3 | 581 | 23.01.2014 21:11 tairikuokami | | Popis VIA chipsetů v Ostatné čipové sady | 1 | 3031 | 05.03.2006 11:56 Harlequin | | Popis obrazka - bublina v JavaScript, VBScript, Ajax | 7 | 526 | 25.11.2012 23:18 shaggy | | Obnovenie vymazanej histórie Google Chrome v Sieťové a internetové programy | 0 | 2701 | 20.11.2016 20:18 b4sto | | Zmazanie histórie správ na facebooku v Sociálne siete | 4 | 4458 | 07.04.2013 13:30 XOLOO | | nefungujúci popis vo formulári v HTML, XHTML, XML, CSS | 7 | 522 | 22.10.2007 11:01 brano |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|