Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Slovníček pojmů

Deklarace

Deklarace je zápis, kterým se v jazyce C zavádí identifikátor (jméno) a datový typ proměnných, konstant a funkcí. Překladač je tak informován o existenci těchto objektů a jejich případných paměťových nárocích (viz. alokace), u funkcí také o počtu argumentů, datovém typu argumentů a datovém typu návratové hodnoty. Deklaraci je třeba provést před tím, než je objekt poprvé použit.

// priklad deklarace promenne
int a;
// priklad deklarace funkce
void funkce(int a);

V případě, že kompilátor nenalezne deklaraci funkce, považuje za deklaraci její první volání.

Inicializace

Inicializace proměnné je proces, při kterém je do operační paměti uložena hodnota v podobě binárního čísla, jehož význam je určen datovým typem proměnné. Bez inicializace je hodnota proměnné obecně náhodná, odpovídající stavu paměti po zapnutí počítače. Výjimkou jsou globální proměnné, které jsou automaticky inicializovány na 0 (pokud není programem stanoveno jinak).

// inicializace promenne spojena s deklaraci
int a = 10;

Alokace paměti

Alokace paměti je proces, při kterém kompilátor přidělí programu pamět podle požadavků daných deklarací. Paměť je přidělena podle datového typu příslušných objektů, u polí odpovídá alokace násobku velikosti datového typu, u struktur součtu velikosti jednotlivých členských proměnných a u unionu je velikos dána velikostí největšího použitého datového typu.

Kompilátor alokuje prostor pro objekty v různých částech operační paměti (operační paměť).

Operační paměť

Operační paměť, kterou mají naše programy k dispozici, lze z pohledu alokace paměti programátorem zjednodušeně rozdělit do několika částí:

  1. zásobník - zde jsou umístěny lokální proměnné, o inicializaci se stará programátor, velikost cca 1MB
  2. statická paměť - zde jsou umístěny globální proměnné a proměnné se specifikátorem static, automaticky inicializovány na 0
  3. textová pamět - do této části paměti umisťuje kompilátor textové literály, pamět je pouze pro čtení (stejné řetězce jsou z důvodu úspory paměti řešeny odkazem)
  4. dynamická pamět - pamět, do které má programátor přístup pomocí funkcí malloc, calloc a realloc, velikost je řádově větší než u zásobníku

Pole

Složený datový typ, který dává programátorovi k dispozici lineárně uspořádanou posloupnost prvků stejného datového typu, přístupných pomocí indexu (čísla). Index udává vzdálenost prvku od počátku pole, první prvek má tedy index 0. V jazyce C je nelze velikost pole měnit, od standardu C99 je možné stanovit velikost pole za běhu.

// deklarace pole deseti prvků datového typu int
// pole není inicializováno - hodnoty prvků jsou náhodné 
int pole1[10];
 
// defininice pole tří prvků datového typu int
// definice je provedena výčtem všech prvků, velikost pole je stanovena kompilátorem
int pole2[] = {10, 20, 30}; 
 
// výčet prvků může být i částečný, prvky, které nejsou součástí výčtu, jsou inicializovány na 0
// pokud není uvedena celková velikost, kompilátor určí velikost podle nejvyššího uvedeného indexu 
// následující pole má deset prvků datového typu int
int pole3[] = {[3]=4, [9]=10};
 
// částečný výčet lze kombinovat i s uvedením velikosti pole
int pole[10] = {[0]=1, [4]=1};

courses/b0b99prpa/dictionary.txt · Last modified: 2020/10/31 19:07 by viteks