Jazyk C - štruktúra kódu
Učebné texty
Príklad „Hello Word“ (Ahoj svet) [1]
1 #include <stdio.h>
2
3 int main() {
4
5 /* môj prvý program */
6 printf("Hello, World! \n");
7
8 return 0;
9 }
Príklad Hello Word
je najpoužívanejší príklad jednoduchého programu. Poďme si prejsť jednotlivé časti programu -
- Prvý riadok programu #include <stdio.h> je preprocesorový príkaz, ktorý povie kompilátoru C, aby pred vykonaním skutočnej kompilácie zahrnul súbor stdio.h.
- Ďalší riadok int main () je hlavnou funkciou ktorú obsahuje každý program. V main funkcií sa začína vykonávať program.
- Nasledujúci riadok /* */ bude kompilátorom ignorovaný pretože to nieje riadok kódu na vykonanie operácie ale slúži iba ako
poznámka
pre programátora alebo pre niekoho kto bude daný kód čítať. Takýto riadok sa nazýva komentár. - Ďalší riadok printf (...) je ďalšou funkciou dostupnou v jazyku C, ktorou funkciou je výpis textu:
Hello Word
na obrazovke. - Posledný riadok return 0; znamená že funkcia main() vráti hodnotu 0 po ukončení funkcie.
Štruktúra jazyka C
Príkazy preprocesora [2]
Príkazy preprocesora umožňujú vkladanie a skladanie textu z rôznych súborov, podmienený preklad a definíciu symbolických konštánt a makier. Každý príkaz pre preprocesor sa začína znakom #, za ktorým nasleduje príkaz a jeho parametre.
Definíciu symbolických konštánt a makier
Príkaz na definíciu symbolických konštánt má tvar:
#define NAME konštantný_výraz
Kde NAME je názov symbolickej konštanty a konštantný_výraz je hodnota, ktorú symbolická konštanta nadobúda. Príklad symbolickej konštanty:
#define MAX 100
#define LINE 80
#define PI 3.14
#define NAME1 Pavel
#define NAME2 "Peter"
Prvé tri sú číselné symbolické konštanty. MAX nadobudne hodnotu 100, LINE hodnotu 80, PI 3,14. NAME1 je znaková konštanta s hodnotou Pavel (všade namiesto NAME1 sa dosadí Pavel), NAME2 je reťazec "Peter". Symbolické konštanty sa používajú napríklad na definovanie polí z konštantnou veľkostnou napr:
#define M 10
#define N 5
...
int a[M];
float b[N], c[M][N];
char d[M+1];
Definícia makra spočíva v pridaní jedného či viacerých parametrov k názvu symbolickej konštanty (symbolickú konštantu je možné pokladať za makro bez parametrov) a doplnení výrazu pre jeho výpočet napr:
#define KOCKA(a) (a*a*a)
#define VALEC(v,p) (PI*p*p*v)
#define GULA(r) (4*PI/3*r*r*r)
Uvedené makrá slúžia pre výpočet objemu príslušných geometrických telies. Identifikátory v hlavičke makra a, v, p, r predstavujú formálne parametre, ktoré sú pri vyvolaní makra textovo nahradené skutočnými. Počet formálnych a skutočných parametrov musí byť rovnaký. Poradie vykonávania jednotlivých operácií v rámci makra možno riadiť zátvorkami.
Vkladanie textu
Príkaz na vkladanie textu #include [meno súboru] spôsobí vloženie obsahu súboru "meno súboru" pred prekladom do zdrojového súboru, v ktorom sa vyššie uvedený príkaz nachádza. To umožňuje vkladanie tak systémových súborov (tzv. hlavičkových súborov, s príponou .h, napr. <stdio.h>), ako aj vlastných užívateľských súborov, čo predstavuje jednu z možností modulárnej výstavby programu.Príkaz na vloženie môže mať dva tvary (v prvom prípade je názov súboru uvedený v lomených zátvorkách, v druhom prípade v dvojitých úvodzovkách):
#include <file.h>
#include "path_file"
Prvý tvar sa používa pre vkladanie systémových súborov, ktoré sú uložené v príslušnom systémovom podadresári (INCLUDE).Všetky štandardné funkcie, konštanty a makrá v jazyku C sú deklasované v takýchto súboroch. Pri popise danej funkcie je vždy uvedená adresár v ktorom sa daná funkcia nachádza. Vloženie daného súboru umožňuje kompilátoru kontrolu správnosti volania štandardnej funkcie. Druhý tvar sa používa pre vkladanie užívateľských súborov, pričom sa prehľadáva aktuálny adresár, resp. adresár, uvedený v špecifikácii vkladaného súboru.
Podmienený preklad
Príkazy pre podmienený preklad majú tvar:
#if podmienka
#ifdef symb_konštanta
#ifndef symb_konštanta
#else
#endif
Umožňujú v závislosti na splnení daných podmienok zaradzovať, resp. vynechávať určité časti programu z prekladu. Tieto podmienky sa môžu vzťahovať napr. na ladenie programu, rôzne výpisy, prítomnosť hardware (napr. koprocesor), príp. programového vybavenia. Každý z príkazov #if, #ifdef, resp. #ifndef musí byť ukončený príkazom #endif.
Funkcie [3]
Funkcia je skupina príkazov, ktoré spoločne vykonávajú úlohu. Každý program C má najmenej jednu funkciu, ktorá je main () , a všetky najvýznamnejšie programy môžu definovať ďalšie funkcie. Kód môžete rozdeliť do samostatných funkcií. Ako rozdelíte svoj kód medzi rôzne funkcie, je len na vás, ale logicky je rozdelenie také, že každá funkcia vykonáva konkrétnu úlohu.
Deklarácia funkcie hovorí kompilátoru o názve funkcie, type návratu a parametroch.
Definícia funkcie poskytuje skutočné telo funkcie.
Všeobecná forma definície funkcie v programovacom jazyku C je nasledovná:
TYP názov_funkcie( parameter funkcie ) {
...Samotné telo funkcie....
}
- TYP - alebo návratová hodnota je typ hodnota ktorú funkcia vráti.
- názov_funkcie - Toto je skutočný názov funkcie. Názov funkcie a zoznam parametrov spolu tvoria funkčný podpis.
- parameter - je ako zástupný symbol. Po vyvolaní funkcie odovzdáte hodnotu parametru. Táto hodnota sa označuje ako skutočný parameter alebo argument. Zoznam parametrov sa týka typu, poradia a počtu parametrov funkcie. Parametre sú voliteľné; to znamená, že funkcia nesmie obsahovať žiadne parametre.
- Telo funkcie - telo funkcie obsahuje súbor príkazov, ktoré definujú, čo funkcia robí. Telo funkcie sa píše do zložených zátvoriek { }.
Funkcie sú bližšie vysvetlené v sekii Jazyk C - Funkcie.
Premenné[4]
Typy a popis premenných:
- char - používa sa pre uloženie znakov
- int - používa sa pre uloženie celých čísel
- float - používa sa pre uloženie reálnych čísel
- double - používa sa pre uloženie reálnych čísel v pohyblivej rádovej číarke
- void - používa sa pre špecifikáciu skutočnosti, že prenášaný typ je prázdny, najčastejšie v spojitosti s funkciou
Deklarácia premenných:
typ Názov_Premennej [=počiatočné hodnoty];
- typ-určuje čo sa do danej premennej bude vkladať.
- Názov_Premennej - je názov ktorý sa používa v programe k prístupu k tejto premennej
- počiatočná hodnota - je hodnotu ktorú ma premenná po spustení programu.
- Za každou premennou sa píše ;
napr:
int i = 1;
float k = 2.5;
Prvá premenná je typu int to znamená že bude obsahovať celé čísla jej názov je i a má počiatočnú hodnotu 1. Druhá premenná je typu float to znamená že bude obsahovať racionálne ,čísla jej názov je k a má počiatočnú hodnotu 2.5.
Dátové typy a premenné sú bližšie vysvetlené v sekcii Jazyk C - dátové typy, premenné.
Operátory a výrazy
Operátor je symbol, ktorý hovorí kompilátoru, aby vykonával konkrétne matematické alebo logické funkcie.
Jazyk C je bohatý na vstavané operátory a poskytuje nasledujúce typy operátorov -
- Aritmetické operátory
- Relačné operátory
- Logické operátory
- Bitové operátory
- Operátory priradenia
Operátory sú bližšie vysvetlené v sekcii Jazyk C - operátory.
Komentáre
Komentáre sú ako pomocný text vo vašom programe C a kompilátor ich ignoruje. poznáme dva druhy komentárov komentáre riadkové začínajú sa znakmi // a zakomentuje sa len jeden riadok.
//jednoriadkový komentár
Komentáre celého bloku(viacerých riadkov) sa začínajú znakmi / * a končia znakmi * /, ako je uvedené nižšie -
/* viacriadkový komentár ktorým možno za komentovať viac riadkov(blok) naraz
.
.
.
*/