User Manual

73
4.4.9. Pole, řetězce, ukazatele...
Na vysvětlení čeká ještě velké množství dalších zajímavos programovacího jazyka C, ale
podrobnosti necháme na studium dostupné literatury!
Většina ukázkoch programů je srozumitelná bez dalšího studování. Ve zbývající části tohoto
stručného kurzu popíšeme pouze krátký přehled několika příkladů a konceptů, které
samozřejmě nejsou příliš podrobné.
Nejprve probereme pole. Pole vám umňuje uložit předem definovaný počet prvků se stejným
datom typem. Následující vzorek pole se může použít k uložení 10 byte:
uint8_t myFavouriteArray[10];
Na jedim řádku jsme deklarovali 10 proměnných se stejným datovým typem, které mohou být
adresovány indexem:
myFavouriteArray[0] = 8;
myFavouriteArray[2] = 234;
myFavouriteArray[9] = 45;
Každý prvek pole může být chápán jako standardní proměnná.
Pozor: index dy začí od 0 a deklarace pole obsahuje n prvků z toho plyne rozsah indexu
od 0 do n-1! Ukázkové pole poskytuje 10 prvků s indexy od 0 do 9.
Pole jsou velmi užitečná pro ukládání většího počtu proměnných se stejným datovým typem a
může se s nimi snadno manipulovat v cyklech:
uint8_t i;
for(i = 0; i < 10; i++)
writeInteger(myFavouriteArray[i],DEC);
Předchozí úryvek kódu vytvoří výstup ech prvků pole (v tomto případě bez oddělovačů a
odsazení řádků). Velmi podobný cyklus se může použít pro naplnění pole hodnotami.
V jazyku C jsou řetězce obslouženy velmi jednoduchým konceptem. Standardní řetězce budou
tvořit ASCII znaky, které pro každý znak zabírají jeden byte. Nyní se v jazyku C řetězce
jednoduše definují jako pole, která můžeme chápat jako pole znaků. Tento koncept umňuje
definovat a ukládat do paměti předem sestavený řetězec "abcdefghijklmno":
uint8_t aSetOfCharacters[16] = "abcdefghijklmno";
Dříve probrané ukázkové programy dy obsahovaly několik funkcí UART pro výstup řetězců
přes sériové rozhraní. Základem těchto řetězců jsou pole. Nepracuje se však s celým polem.
Tyto funkce se budou pouze vázat na adresu prvního prvku v poli. Proměnná, která obsahuje
adresu tohoto prvního prvku, se nazývá ukazatel. Můžeme vytvořit ukazatel na požadovaný
prvek pole zapsáním &MyFavouriteArray[x], kde x odkazuje na indexovaný prvek. Několik
takových razů můžeme najít v ukázkových programech, tj.:
uint8_t * PointerToAnElement = &aCharacterString[4];
Na této úrovni ak nemusíme zcela zvládnout tento koncept, přesto porozumíte většině
ukázkových programů nebo psaní vlastních programu.