Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

C (programovací jazyk)

Z Wikipedie, otevřené encyklopedie
ikona
Tento článek potřebuje úpravy.
Můžete Wikipedii pomoci tím, že hovylepšíte. Jak by měly články vypadat, popisují stránkyVzhled a styl,Encyklopedický styl aOdkazy.
C
Paradigmaimperativní (procedurální),strukturovaný
Vznik1972
AutorDennis Ritchie
VývojářDennis Ritchie & Bell Labs
Poslední verzeC18 (červen 2018[1])
Poslední nestabilní verzeC23 (N3096) (2. dubna 2023; před 1049 dny[2])
Typová kontrolastatická, slabá, nominativní
Hlavní implementaceclang,GCC, Intel C, MSVC, Pelles C, Watcom C
DialektyCyclone, Unified Parallel C, Split-C, Cilk, C*
Ovlivněn jazykyB (BCPL,CPL),ALGOL 68,Assembler,PL/1,Fortran
Ovlivnil jazykyAMPL,AWK,csh,C++,C--,C♯,Objective-C,BitC,D,Go,Java,JavaScript,Limbo,LPC,Perl,PHP,Pike,Processing,Rust,Seed7 a řadu dalších
OSmultiplatformní
Ken Thompson a Dennis Ritchie

C jeprogramovací jazyk, který počátkem 70. let 20. století vyvinuliKen ThompsonDennis Ritchie pro potřebyoperačního systémuUnix. Jde ovyššíprogramovací jazyk, který přesto umožňuje zapisovat programové konstrukce tak, jak je počítač skutečně zpracovává, takže výsledný kód může být velmi efektivní, a proto v minulosti nahradilnízkoúrovňovýjazyk symbolických adres. Jazyk C jekompilovaný,imperativní (procedurální),strukturovaný, podporujerekurzi, mástatickou typovou kontrolu. Je využíván pro programování operačního systému aaplikačního softwaru odsuperpočítačů kPLC (programovatelný logický automat) avestavěných systémů (anglicky„embedded systems“[3], nachází se např. vautomobilech nebozdravotnickýchpřístrojích)[4].

Jazyk C je nástupcemprogramovacího jazyka B. Vyvinul hoDennis Ritchie vBellových laboratořích mezi roky 1972 a 1973 pro vývoj nástrojů pro operační systémUnix. K vývoji přispělKen Thompson, který ho použil pro naprogramováníjádra operačního systému Unix, aby dosáhl možnosti ho přenést na různé počítače. V80. letech se stal nejpopulárnějším programovacím jazykem, který mělpřekladače pro téměř všechny dostupnépočítačové architektury.[zdroj?] V roce 1989 byl jazyk C standardizovánANSI (jakoANSI C) aISO.

Charakteristika

[editovat |editovat zdroj]
ikona
Neutralita nebo faktická přesnost tohoto článku může být narušena užívánímvyhýbavých slov.
Ta umožňují nenápadné vkládáníneověřených tvrzení. Můžete pomoci Wikipedii tím, žetvrzení tvořená vyhýbavými slovy ověříte a vhodně upravíte nebo odstraníte.

V současné době[kdy?] je jeden z nejpopulárnějších jazyků, zřejmě nejčastější pro psanísystémového softwaru, ale velmi rozšířený i proaplikace. C je nízkoúrovňový,kompilovaný, relativně minimalistickýprogramovací jazyk. Je dostatečně mocný na většinu systémového programování (ovladačejádroOS), přičemž zbytek lze dořešit tzv. inline assemblerem, tedy metodou zápisuassembleru přímo do kódu.Zdrojový kód C je přitom mnohem čitelnější než assembler, je jednodušší ho zapsat a navíc je daleko snáze přenositelný na jinéprocesory a počítačové architektury. Proto jsou častooperační systémy,překladače,knihovnyinterpretyvysokoúrovňových jazyků implementovány právě v C.[zdroj?] Mnoho dalších moderních programovacích jazyků přebírá způsob zápisu (nebolisyntaxi) z jazyka C, napříkladC++,D,Java,Perl,PHP,Rust,JavaScript.

Ukládání dat je v C řešeno třemi základními způsoby: statickou alokací paměti (při překladu), automatickou alokací paměti nazásobníku a dynamickou alokací nahaldě (heap) pomocíknihovních funkcí. Jazyk disponuje jen minimální abstrakcí nad alokací: s pamětí se pracuje přes datový typ zvanýukazatel, který drží odkaz na paměťový prostor daného typu proměnné, ale je na něm možné provádět aritmetické operace (tyto operace ale neoperují s ukazateli přímo na úrovni jednotlivých bajtů, nýbrž přihlíží k velikosti datového typu, na který ukazují – existují ale také ukazatele typuvoid *, které mohou odkazovat na jakýkoliv typ dat uložený v paměti.). Ukazatele tedy existují nezávisle naproměnných, na které odkazují, a je na odpovědnosti programátora, aby neukazovaly na paměť nealokovanou.

Ukazatele jsou velmi mocným nástrojem, protože C jazyk povoluje ukazatele nejen na data, ale i na funkce. Současně jsou ukazatele z hlediska přenositelnosti a rizika zhroucení programu při jejich nesprávném použitíAchillovou patou jazyka. Na druhou stranu programátor má plnou zodpovědnost za alokaci paměti, není zde tedy závislost na automatickém dealokátoru paměti (garbage collector). JazykyJavaC♯, oba odvozené od C, používají méně univerzální způsob odkazování alokovaných proměnných, který snižuje pravděpodobnost chyby v programu. JazykC++, původně rozšíření jazyka C, ovšem zodpovědnost programátora za alokaci zachoval (s výjimkou noremC++11 a vyšších, kde je to možnost volby).

Skutečnost, že jazyk C neklade programátorovi téměř žádné překážky při zápisu do paměti, vedla v praxi k řadě bezpečnostních slabin v programech napsaných v jazyce C (přetečení bufferů, výkon libovolného kódu, rozbití zásobníku). Významným příkladem je například slabinaHeartbleed zavlečená do knihovny OpenSSL, která byla odhalena až po více než dvou letech. Současný hardware se některým těmto slabinám snaží bránit, například pomocíNX bitů, které označují určitou oblast paměti jako nevykonatelnou. Jeden z následovníků jazyka C, jazykRust, má právě z tohoto důvodu velmi silný bezpečnostní model práce s pamětí.

Historie

[editovat |editovat zdroj]

Počátky

[editovat |editovat zdroj]

Vývoj jazyka C začal v Bellových laboratoříchAT&T mezi léty19691973. Ritchie tvrdí, že nejpřínosnější období bylo v roce1972.[zdroj?] Pojmenování „C“ zvolili, protože mnoho vlastností přebírali ze staršího jazyka zvaného „B“, jehož název byl zase odvozen od jazyka BCPL (ale to není jisté, neboť Thompson také vytvořil jazyk Bon na poctu své ženy Bonnie).

V roce1973 se stal jazyk C dostatečně stabilním. Většina zdrojového kódujádraUnixu, původně napsaného v assembleruPDP-11, byla přepsána do C. Unix tedy patří mezi první operační systémy, které byly napsané v jiném než strojovém jazyce či assembleru. Předchozí byl například systémMultics (napsaný v PL/I) a TRIPOS (napsaný v BCPL).

K&R C

[editovat |editovat zdroj]

V roce1978, Ritchie a Brian Kernighan vydali první vydání knihyThe C Programming Language. Tato kniha, mezi programátory C známá jako „K&R“, sloužila po mnoho let jako neformálníspecifikace jazyka. Verze C, kterou takto popsali, bývá označována jako „K&R C“. (Druhé vydání knihy popisovalo novější standard ANSI C.)

K&R zavedli následující vlastnosti jazyka:

  • datový typstruct
  • datový typlong int
  • datový typunsigned int
  • Operátor=+ byl změněn na+=, a podobně (=+ mátllexikální analyzátor překladače C).

K&R C je považován za základní normu, kterou musejí obsahovat všechny překladače jazyka C. Ještě mnoho let po uvedení ANSI C to byl „nejmenší společný jmenovatel“, který využívali programátoři v jazyce C kvůli maximální přenositelnosti, protože zdaleka ne všechny překladače plně podporovaly ANSI C.

V několika letech následujících po uvedení K&R C bylo uvedeno a přidáno několik „neoficiálních“ vlastností jazyka, které byly podporovány překladači od AT&T a některých dalších dodavatelů. Změny zahrnují:

  • datový typvoid * a funkce vracejícívoid
  • funkce vracející typstruct nebounion
  • položky vestruct se ukládají do odděleného jmenného prostoru pro každýstruct
  • modifikátorconst
  • standardní knihovnu zahrnující většinu funkcí implementovaných různými dodavateli
  • výčtový typenumeration
  • datový typfloat

ANSI C a ISO C

[editovat |editovat zdroj]

V pozdních sedmdesátých letech začalo C nahrazovatBASIC jako předníprogramovací jazyk promikropočítače. Během osmdesátých let bylo přejato pro použití na platforměIBM PC a jeho popularita se značně zvýšila. Tou dobouBjarne Stroustrup a další v Bellových laboratořích začali pracovat na rozšiřování C o objektově orientované prvky. Jazyk, který vytvořili, zvanýC++, je dnes nejrozšířenější programovací jazyk proaplikace naMicrosoft Windows; C zůstává stále populárnější ve světě Unixu.

V roce1983 seAmerican National Standards Institute (ANSI) dohodla na sestavení komise X3J11, aby vytvořila standardní specifikaci C. Po dlouhém a pracném procesu byl standard dokončen v roce1989 a schválen jako ANSI X3.159-1989 „Programming Language C“. Tato verze jazyka je často stále označována jako ANSI C.V roce1990 byl standard ANSI C (s drobnými změnami) adoptován institucíInternational Organization for Standardization (ISO) jako „ISO 9899|ISO/IEC 9899:1990“.

Jedním z cílů standardizačního procesu ANSI C byl vytvořit nadmnožinu K&R C zahrnující mnoho „neoficiálních vlastností“.Navíc standardizační komise přidala několik vlastností jakofunkční prototypy (vypůjčené z C++) a schopnějšípreprocesor.

ANSI C je dnes podporováno téměř všemi rozšířenými překladači. Většina kódu psaného v současné době v C je založena na ANSI C. Jakýkoli program napsanýpouze ve standardním C je přeložitelný a spustitelný na jakékoliplatformě, která odpovídá tomuto standardu. Nicméně mnoho programů se dá přeložit pouze na jedné platformě nebo jedním překladačem, kvůli použití nestandardních knihoven, např. pro grafiku, a také některé překladače v implicitním módu neodpovídají standardu ANSI C.

C99

[editovat |editovat zdroj]

Po standardizaci jazyka v roce1989 se většina vývoje soustředila na jazykC++. Přesto však na konci 90. let došlo k vydání dokumentu ISO 9899:1999 (obvykle nazývaný C99), který byl následně v březnu 2000 přijat i jako ANSI standard.

C99 představil několik nových vlastností, které byly mnohdy v překladačích už implementovány jako rozšíření:

  • Inline funkce
  • Proměnné mohou být deklarovány kdekoli (jako v C++), v C89 mohly být deklarovány pouze na začátku bloku
  • Několik nových datových typů, včetnělong long int (nejméně 64bitový integer),bool (logický ano/ne typ) nebo typcomplex určený na reprezentaci komplexních čísel.
  • Pole s nekonstantní velikostí
  • Podpora pro zakomentování jednoho řádku//, tak jako v jazycíchC++ neboBCPL
  • Nové knihovní funkce, hlavně ve formě náhrady za funkce náchylné napřetečení na zásobníku, např.snprintf()
  • Novéhlavičkové soubory, např.stdint.h
  • Variadická makra (makraC preprocesoru s proměnným počtem argumentů)
  • Klíčové slovorestrict, které v deklaraci ukazatele specifikuje, že na paměť odkazovanou tímto ukazatelem nepřistupuje žádný jiný ukazatel (např.int* restrict foo;), díky čemuž překladač může produkovat optimalizovanější kód; zajištění, aby tomu skutečně tak bylo, je na programátorovi (při nedodržení je chování programu nedefinované)

Standard C99 je v některých ohledech přísnější než původní standard C89; například je (až na výjimky) zakázáno přistupovat k paměti prostřednictvím ukazatele jiného typu, než pomocí jakého byla zapsána. Toto omezení poskytuje překladači prostor k lepší optimalizaci, ale může způsobit problémy s kompilací starších programů.

Žádný kompilátor zatím neobsahuje kompletní implementaci C99, přestože některé jsou poměrně blízko (GCC). Firmy jakoMicrosoft neboBorland neprojevily velký zájem o implementaci C99, především kvůli tomu, že většinu nových vlastností poskytuje C++ a to často nekompatibilně s C99 (datový typ complex v C99 versus třída complex v C++).

„Hello, World!“ v C

[editovat |editovat zdroj]

Následující jednoduchá aplikace vypíše „Hello, World!“ nastandardní výstup. Jedna z verzí se poprvé objevila v K&R.

#include<stdio.h>intmain(void){printf("Hello, World!\n");// tisk na obrazovkureturn0;// konec programu, bez chyby}

Charakteristika jazyka C

[editovat |editovat zdroj]

Datové typy

[editovat |editovat zdroj]

Programovací jazyk C má tytodatové typy:

  • char – Používá se pro malá čísla; též unsigned char pro bezznaménková čísla a 8bitové znaky
  • int – Používá se pro menší celá čísla; též unsigned int pro bezznaménková čísla
  • long – Používá se pro větší celá čísla; též unsigned long pro bezznaménková čísla
  • float – Používá se pro desetinné číslo s plovoucí řádovou čárkou
  • double – Používá se pro desetinné číslo s plovoucí řádovou čárkou s dvojnásobnou přesností
  • void – Používá se, pokud nepotřebujeme žádnou hodnotu (např. u funkcí)

Řídící příkazy

[editovat |editovat zdroj]

Řídící příkazy určují průběh zpracovávání programu. Jako takové tvoří páteř programů.

if

[editovat |editovat zdroj]

Příkazif je jedním z příkazů jazyka C pro větvení programu (někdy nazývané také jakopodmíněné příkazy). Jeho činnost je určena výsledkem testu podmínky, která je vyhodnocena jako pravdivá, nebo nepravdivá. Jednoduše řečeno, podmíněné činí rozhodnutí na základě vyhodnocení nějaké podmínky.

if(výraz)příkaz;

příklad:

/* Když je hodnota proměnné i rovna jedna, provede se vypsání textu. */if(i==1)printf("\nHodnota promenne 'i' je jedna.");

if – else

[editovat |editovat zdroj]

K příkazuif můžete přidatelse. Pokud tak učiníte, tak programu řeknete, co má dělat, i pokud bude podmínka nepravdivá. Konstrukce poté může vypadat takto:

if(výraz)příkaz1;elsepříkaz2;

1. příklad:

/* Podle velikosti promenne j se provede prikaz vypisujici informace o jeji hodnote. */if(j<3)printf("\nHodnota promenne j je mensi nez tri.");elseprintf("\nHodnota promenne j je vetsi nebo rovna trem.");

2. příklad:

#include<stdio.h>/* Program, který ze tří celých čísel vybere největší. */intnej(inta,intb,intc){intvysl;if(a>b){if(a>c)vysl=a;elsevysl=c;}else{if(b>c)vysl=b;elsevysl=c;}return(vysl);}intmain(){inta;intb;intc;printf("Tento program vyhodnoti nejvyssi ze tri zadanych cisel.\n");printf("Zadej prvni cislo:");scanf("%d",&a);printf("Zadej druhe cislo:");scanf("%d",&b);printf("Zadej treti cislo:");scanf("%d",&c);printf("Nejvetsi cislo je: %d\n",nej(a,b,c));return(0);}

Vývojový diagram k příkladu:
Vývojový diagram programu

switch

[editovat |editovat zdroj]

Příkazswitch slouží k výběru jedné z několika větví programu, která se má provést v závislosti na nějaké celočíselné hodnotě. Jeho formát je následující:

switch(celočíselnývýraz){casehodnota1:příkazy1;break;casehodnota2:příkazy2;break;default:příkazyprovšechnyostatnípřípady;break;}

Podle hodnoty celočíselného výrazu se vybere jedna z větvícase. Je-li hodnota výrazu rovna hodnotě1, provedou se příkazy1, je-li rovna hodnotě2, provedou se příkazy2, atd. Příkazbreak na konci každé větve není povinný, ale pokud tam není, začne se po skončení větve provádět další větev v pořadí bez ohledu na hodnotu výrazu. Chceme-li tedy pro každou hodnotu provádět jedinou větev, jebreak nutný na konci každé větve kromě poslední. Větevdefault (je-li přítomna) se vykoná v případě, že hodnota výrazu není rovna ani jedné z hodnot uvedených za příkazycase. Obvykle se uvádí jako poslední, není to však vyžadováno.

Příklad

# define CZ 1# define EN 2# define DE 3intjazyk;/* V zavislosti na hodnote promenne 'jazyk' se vypise pozdrav v ruznych jazycich. */switch(jazyk){caseCZ:printf("\nNazdar svete!");break;caseEN:printf("\nHello world!");break;caseDE:printf("\nHallo Welt!");break;default:/* Kdyz nezname jazyk, vypiseme text anglicky */printf("\n(Language unknown => english).");printf("\nHello world!");break;}

goto

Příkazgoto způsobí okamžitý skok na stejně pojmenované návěští (label):

Příklad

for(i=0;i<number;++i){test+=i;gotovypis;}vypis:if(test>5){printf("Test > 5");}

V dnešních C programech segoto používá jen málokdy, neboť jeho použití znesnadňuje analýzu chování programu. Za „škodlivý“ (harmful) označil příkazgoto nizozemský teoretik Edgar Dijkstra už roku 1968 (Go To Statement Considered Harmful), kdy ještě jazyk C ani neexistoval. (Příkazgoto byl do jazyka C převzat ze starších jazyků.) V určitých situacích však jde o nejpraktičtější řešení vzniklé situace, například při nutnosti opustit několikanásobně vnořený cyklus.

Cyklus for

[editovat |editovat zdroj]

Příkazcyklufor je jedním ze tří příkazů cyklu v jazyku C. Umožňuje opakovat jeden, nebo více příkazů. Cyklus for je mnohými programátory v jazyku C považován za jeho nejpružnější příkaz. Cyklus for se používá pro zadaný počet opakování příkazu, nebo bloku příkazu. Jeho obecný formát pro opakování jednoho příkazu vypadá takto:

for(inicializace;testpodmínky;inkrementace)příkaz;

Příklad:

/* Vypis druhych a tretich mocnin cisel 1 az 10 */inti;/* – cyklus je zahajen s hodnotou i = 1, * – po provedeni tela cyklu se hodnota i zvysi o 1 (prikaz 'i++'), * – dokud je i mensi nebo rovno 10 dochazi k opakovanemu provadeni tela cyklu a prikazu 'i++' * – po provedeni cyklu s hodnotou i rovnou 10 se i zvysi na 11 (prikaz 'i++'), podminka i<=10 *   se vyhodnoti jako nepravdiva a program pokracuje prikazy nasledujicimi za telem cyklu. */for(i=1;i<=10;i++){printf("\nDruha mocnina cisla %d je %d.",i,i*i);printf("\nTreti mocnina cisla %d je %d.",i,i*i*i);}

Cyklus while

[editovat |editovat zdroj]

Cyklus while je cyklus s podmínkou na začátku. Napřed se testuje podmínka, je-li platná, pak se provede tělo cyklu a znovu se testuje podmínka. Není-li platná, program pokračuje za cyklem. Není-li tedy podmínka platná při prvním příchodu na cyklus, neprovede se cyklus ani jednou. Jeho formát vypadá takto:

while(testpodmínky)příkaz;

Příklad:

/* Vypis druhych a tretich mocnin od 1 do 10. */inti;i=1;while(i<=10){printf("\nDruha mocnina cisla %d je %d.",i,i*i);printf("\nTreti mocnina cisla %d je %d.",i,i*i*i);i++;}

Cyklus do-while

[editovat |editovat zdroj]

Cyklus do-while je cyklus s podmínkou na konci. Napřed se provede tělo cyklu, pak se testuje podmínka. Je-li platná, cyklus se provede znovu. Není-li platná, program pokračuje za cyklem. Tento cyklus se tedy provede vždy nejméně jednou. Jeho formát vypadá takto:

dopříkaz;while(testpodmínky);

Příkazy break a continue

[editovat |editovat zdroj]

Příkazbreak slouží k okamžitému opuštění cyklu, bez ohledu na platnost podmínky. Příkazcontinue slouží ke skoku na konec cyklu a znovu testování podmínky (v cyklu for skočí na inkrementaci, pak se znovu testuje podmínka, v cyklech while a do-while skočí na test podmínky). Jejich syntaxe je jednoduchá:

break;
continue;

Příklad:

/* Cyklus while(1) by byl normalne nekonecny, ale je ukoncen podminenym provedenim prikazu break. */inti;i=1;while(1){printf("\n%d na druhou je %d.",i,i*i);i++;if(i>10){printf("\nHodnota i je %d, padla.",i);break;}}

Knihovny

[editovat |editovat zdroj]

Programovací jazyk C používá knihovny jako základní metody vylepšení. Knihovny v jazyce C jsou skupiny funkcí uložené v jedné archivní složce. Každá knihovna má typicky záhlaví obsahující prototypy o funkcích obsažených v knihovně, které mohou být využity programem, deklarace speciálních datových typů a makro symbolů použité v těchto funkcích. Aby program mohl používat tyto knihovny, musí obsahovat knihovnu v záhlaví a program musí znát danou knihovnu. Nejčastější knihovnou jazyka C je standardní knihovna C, která je specifikovaná standardy ISO a ANSI C a používá se při každé implementaci (implementace, která se zaměřuje na omezené prostředí, jako třeba vložené systémy, může poskytnout pouze část standardní knihovny). Tato knihovna podporuje proud vstupů a výstupů, přidělení paměti, matematické výpočty, řetězce znaků a časové údaje. Několik samostatných standardních záhlaví (například stdio.h) specifikuje rozhraní pro tyto a jiné zařízení standardní knihovny.

Dalším běžným souborem funkcí C knihoven jsou soubory používané pro aplikace speciálně určené pro Unix a podobné systémy, hlavně funkce, které poskytují rozhraní pro kernel. Tyto funkce jsou popsané v několika standardech jako jsou POSIX a jednotná UNIX specifikace.

Vzhledem k tomu, že je v jazyku C napsáno mnoho programů, existuje řada dalších knihoven. Knihovny jsou často psány v jazyku C, protože C kompilery generují efektivní objektový kód. Programátoři poté vytvářejí rozhraní pro knihovnu, aby se daly používat postupy z výše-úrovňových jazyků jako je Java nebo Python.

Práce se soubory a datový proud

[editovat |editovat zdroj]

Soubor vstup a výstup není součástí jazyka C, ale součásti knihovny stdio.h. Práce se soubory je často implementována pomocí vysoko-úrovňové I/O, které funguje přes datový proud. Datový proud je datový tok nezávislý na zařízení, zatímco soubor je konkrétní zařízení. Vysoko-úrovňové I/O je spojení datového proudu a souboru. V základní knihovně jazyka C je vyrovnávací paměť, která je dočasně použita na ukládání dat předtím, než se odešlou do konečné stanice. Toto zmírňuje čekání na pomalejší zařízení, např. pevný disk nebo SSD disk. Nízkoúrovňové I/O funkce nejsou součástí standardních knihoven jazyka C.

Příbuzné jazyky

[editovat |editovat zdroj]
Tiobe index měřící popularitu programovacích jazyků

JazykyC++Objective-C vznikly jako odpověď na vlnu popularityobjektově orientovaného programování (OOP) v 80. letech 20. století. Obě tato rozšíření jazyka C byla nejprve implementována ve formě preprocesoru, tedy zdrojový kód byl nejprve přeložen do C a poté zkompilován kompilátorem jazyka C. Kromě toho vzniklo velké množství jazyků, které sice s jazykem C nejsou příbuzné, ale které částečně přejaly syntaxi jazyka (Java,C♯,D) nebo dokonce jména některých knihovních funkcí (PHP).

C++

[editovat |editovat zdroj]

JazykC++ je odvozen z jazyka C, není s ním ale úplně kompatibilní. Rozdíl, který způsobuje nejvíce problémů s kompilací je, že C++ definuje mnohem striktnější pravidla propřetypování datových typů. Kromě OOP implementuje C++ takégenericképrocedurální programování.

Objective-C

[editovat |editovat zdroj]

Objective-C je odvozen z jazyků C a Smalltalk, přičemž s C je úplně kompatibilní (tedy je možné zkompilovat libovolný zdrojový kód v jazyce C překladačem Objective-C). Syntaxe týkající se preprocesoru, výrazů, deklarací funkcí a volání funkcí je odvozena z C, zatímco objektově orientované programování je odvozeno z jazyka Smalltalk.

Reference

[editovat |editovat zdroj]

V tomto článku byl použitpřeklad textu z článkuC (programming language) na anglické Wikipedii.

  1. The Standard - C
  2. ISO/IEC JTC1/SC22/WG14.C - Project status and milestones [online]. 5 April 2023 [cit. 2023-08-09].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  3. Co je vestavěný systém a jak funguje?.www.voxcafe.cz [online]. [cit. 2024-12-02].Dostupné online. 
  4. What is an Embedded System? | Definition from TechTarget.Search IoT [online]. [cit. 2024-12-02].Dostupné online. (anglicky) 

Související články

[editovat |editovat zdroj]

Literatura

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické

AdaC++Common LispDF#GoOberonPerlPHPPythonRakuRubyRustScalaSwiftTcl (Tk) •Vala

strukturované (procedurální)

AWKCCOBOLDCLForthFortranLuaModula-2 /Modula-3PascalPawnPL/SQL

objektové
funkcionální
dotazovací

LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)

logické
výukové
ezoterické
historické

ALGOLAPLBBASICCPL (BCPL) •JMUMPSPL/ISimula 67SNOBOL

další
skriptovací/strojový kódkompilované/interpretovanéinteraktivní/dávkovéWYSIWYG

V tomto článku byl použitpřeklad textu z článkuC (programming language) na anglické Wikipedii.

Autoritní dataEditovat na Wikidatech
Citováno z „https://cs.wikipedia.org/w/index.php?title=C_(programovací_jazyk)&oldid=25296141
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp