Reklama
Naučiť sa programovať je kumulatívna skúsenosť. Okrem učenia sa syntaxe zvoleného jazyka sa musíte naučiť aj všeobecné princípy, ktoré používajú všetky programovacie jazyky.
Pochopenie a učenie sa programovania v C môže byť skľučujúce, ale existuje niekoľko základných myšlienok, s ktorými sa oplatí zoznámiť, keď začínate. Jednoduchý projekt je skvelý spôsob, ako sa naučiť základy jazyka C.
Kde by ste teda mali začať? Pozdravom!
1. Dobrý deň, Svet!
Prvou časťou takmer každého kurzu kódovania je ahoj svet program. Keď si to prejdeme podrobne, vyzdvihne niektoré zo spôsobov, akými sa C líši od iných jazykov. Na začiatok otvorte a textový editor alebo IDE Textoví redaktori vs. IDE: Ktoré je lepšie pre programátorov?Vybrať si medzi pokročilým IDE a jednoduchším textovým editorom môže byť ťažké. Ponúkame vám prehľad, ktorý vám pomôže urobiť toto rozhodnutie. Čítaj viac podľa vášho výberu a zadajte tento kód:
#include /* toto je skript Hello World v jazyku C */ int main (neplatný) { printf("Ahoj, Svet! \n"); návrat 0; }
Tento krátky kód sa vytlačí na konzole pred ukončením programu. Uložte si ho na ľahko zapamätateľné miesto ako ahoj.c. Teraz musíte skompilovať a zostaviť svoj súbor.
Making It Run
Na spustenie skriptov C zvyčajne nemusíte do počítača inštalovať žiadny ďalší softvér. Otvorte okno terminálu (alebo príkazový riadok, ak používate Windows) a prejdite do adresára, do ktorého ste uložili skript.
Spôsob, akým kompilujete a spúšťate súbor, sa líši od systému k systému:
- Používatelia systému Windows: Urobte svoj súbor spustiteľným zadaním cl ahoj.c a stlačte enter. Tým sa v rovnakom priečinku vytvorí hello.exe, ktorý môžete spustiť zadaním Ahoj.
- Používatelia systémov Linux a macOS: Typ gcc -o ahoj ahoj.c a stlačením klávesu Enter ho spravte spustiteľným a spustite ho zadaním ./Ahoj.
Bez ohľadu na to, ktorú metódu použijete, spustenie skriptu by vám malo ukázať toto:
Ak to nefungovalo v systéme Windows, uistite sa, že ste spustili súbor príkazový riadok v režime správcu. Pre macOS možno budete musieť nainštalovať Xcode z App Store a postupujte podľa týchto krokov zo StackOverflow.
Teraz sa pozrime na program riadok po riadku, aby sme videli, ako funguje, a vylepšujme ho!
Pod kapotou: Pochopenie jazyka C
Preprocesory
Skript, ktorý ste práve vytvorili, začína zahrnutím knižnice.
#include
Prvý riadok v skripte sa nazýva a predprocesor. Toto sa vykoná pred zostavením zvyšku skriptu. V tomto prípade povie skriptu, aby použil stdio.h knižnica. Pre rôzne úlohy je k dispozícii obrovské množstvo preprocesorov.
Stdio.h sa stará o získavanie vstupov od používateľa programu a odosielanie informácií späť k nim.
/* toto je skript Hello World v jazyku C */
Tento ďalší riadok je komentár. Lomka a hviezdička oznamujú kompilátoru, aby ignoroval všetko medzi ňou a záverečnou hviezdičkou a lomkou. Aj keď sa to môže zdať zbytočné, schopnosť zanechať sebe a ostatným jasné poznámky o tom, čo váš kód robí, je základným zvykom, do ktorého sa musíte dostať.
Hlavná funkcia
int main (neplatný)
Každý program C musí mať a Hlavná funkciu. Main je funkcia, ktorá vracia celé číslo označené ako int. Zátvorky za hlavným sú pre jeho argumenty, aj keď v tomto prípade nepotrebujú žiadne, a preto používate neplatné kľúčové slovo.
Kód, ktorý sa má vykonať, napíšete medzi dve zložené zátvorky.
{ printf("Ahoj, Svet! \n"); návrat 0; }
Vo vnútri funkcie zavoláte printf() funkciu. Rovnako ako Hlavná(), printf je funkcia. Rozdiel je v tom, že printf je funkcia v stdio knižnicu, ktorú ste zahrnuli na začiatku.
Printf vytlačí čokoľvek v zátvorkách medzi úvodzovkami do konzoly. The \n je úniková sekvencia nazývaná nový riadok, ktorá hovorí kompilátoru, aby pred pokračovaním preskočil na ďalší riadok v konzole.
Všimnite si, že tieto riadky končia v bodkočiarky, ktorý kompilátor používa na rozdelenie jednej úlohy od ďalšej. Venujte veľkú pozornosť týmto bodkočiarkam – ich vynechanie je hlavnou príčinou toho, že veci nefungujú správne!
Nakoniec sa funkcia vráti s číslom 0, čím sa program ukončí. The Hlavná() funkcia musí vždy vrátiť celé číslo a návratnosť = 0; signalizuje počítaču, že proces bol úspešný.
Pochopenie každého kroku tohto skriptu je skvelým začiatkom pri učení sa syntaxe C a toho, ako jazyk funguje.
2. Vytváranie vlastných funkcií C
V C si môžete vytvoriť svoje vlastné funkcie. Namiesto tlače Hello World v hlavnej funkcii vytvorte novú funkciu, ktorá to urobí za vás.
void print_for_me() { printf("Ahoj, Svet! \n"); }
Poďme si to rozobrať.
neplatné je kľúčové slovo, ktoré znamená, že nasledujúca funkcia nevráti nič.
print_for_me() je názov funkcie a prázdne zátvorky ukazujú, že na fungovanie nepotrebuje argumenty. Argument je akákoľvek informácia, ktorá sa má odovzdať funkcii, aby fungovala – neskôr pridáte vlastný argument na zmenu výstupu! Poznámka: Toto nie je to isté ako funkcia main(), nad ktorou sa používa void. Táto funkcia nemôže prijímať argumenty, zatiaľ čo táto áno (ale v tomto prípade nemusí).
Blok kódu by vám malo byť známe – je to len tlačový výpis z pôvodnej hlavnej funkcie.
Teraz môžete túto funkciu volať z hlavnej funkcie.
int main (neplatný) { print_for_me(); print_for_me(); návrat 0; }
Tu môžete vidieť výhodu používania vlastnej funkcie. Skôr ako písať printf („Ahoj, Svet! \n") zakaždým môžete funkciu zavolať dvakrát.
Momentálne sa to nemusí zdať až také dôležité, ale ak vaša funkcia print_for_me obsahovala veľa riadkov kódu, možnosť zavolať ju tak jednoducho vám ušetrí čas!
Toto je základná myšlienka programovania, s ktorou sa budete stretávať počas svojho vzdelávania. Napíšte svoju vlastnú funkciu raz, namiesto toho, aby ste písali stále tie isté veľké kusy kódu.
3. Používanie funkčných prototypov v C
Prototypy sú jedným z hlavných spôsobov, ako sa začiatočník C líši od iných jazykov. Stručne povedané, prototyp je ako ukážka funkcie definovanej neskôr. Ak za hlavnou funkciou napíšete funkciu print_for_me(), môžete pri kompilácii dostať varovanie:
Varovné hlásenie vám hovorí, že kompilátor sa spustil s funkciou print_for_me predtým, ako bola deklarovaná, takže si nemohol byť istý, že pri spustení programu bude fungovať správne.
Kód by stále fungoval, ale varovaniu sa dá úplne vyhnúť použitím prototypu.
#include void print_for_me(); int main (neplatný) { print_for_me(); print_for_me(); návrat 0; } void print_for_me() { printf("Ahoj, Svet! \n"); }
Pri pohľade na celý program môžete vidieť, že prototyp pre print_for_me() existuje na začiatku programu, ale neobsahuje nič. Funkcia prototypu ukazuje kompilátoru, ako má funkcia vyzerať a či vyžaduje argumenty alebo nie.
To znamená, že keď ju zavoláte v hlavnej funkcii, kompilátor vie, či sa volá správne, a v prípade potreby môže vyvolať varovanie alebo chybu. Môže to byť niečo, čo sa teraz zdá zvláštne, ale vedieť o nich teraz pomôže v budúcnosti.
Tento program stále funguje bez prototypu, ale je dobré ich používať. Výstup zatiaľ vyzerá rovnako, poďme ho zmeniť, aby bol osobnejší!
4. Odovzdávanie argumentov funkciám C
Zmena skriptu
V tomto poslednom kroku požiadate o meno používateľa a zaznamenáte jeho vstup. Potom ho použijete vo funkcii, ktorú ste predtým vytvorili. V C nie sú slová známe ako reťazce ako v iných programovacích jazykoch.
Namiesto toho sú to pole jednotlivých znakov. Symbol pre pole je [] a kľúčové slovo je char. Začnite aktualizáciou funkcie prototypu na začiatku skriptu:
#include void print_for_me (názov znaku[]);
Teraz bude kompilátor vedieť, že funkcia neskôr v skripte preberá pole nazývaných znakov názov. Zatiaľ táto postava neexistuje. Aktualizujte svoju hlavnú funkciu, aby ste ju vytvorili, a použite ju na uloženie používateľského vstupu:
int main (neplatný) { názov znaku[20]; printf("Zadajte meno: "); scanf("%s", meno); print_for_me (meno); print_for_me("Všetci!"); návrat 0; }
Prvý riadok v main vytvorí pole znakov s 20 možnými medzerami nazývanými name. Ďalej je používateľ vyzvaný, aby zadal svoje meno pomocou printf. Ďalší riadok používa novú funkciu tzv scanf ktorý preberá ďalšie slovo, ktoré používateľ napíše.
The „%s“ povie funkcii, že má uložiť dáta ako reťazec a zavolať ju názov.
Úprava funkcie
Teraz, keď zavoláte print_for_me, môžete zahrnúť názov v zátvorkách. Na ďalšom riadku uvidíte, že môžete zadať aj iné znaky, pokiaľ sú v úvodzovkách. V oboch prípadoch sa to, čo je v zátvorkách, prenesie do funkcie print_for_me.
Upravte to teraz, aby ste použili nové informácie, ktoré mu dávate:
void print_for_me (názov znaku[]) { printf("Ahoj, "); kladie (meno); }
Tu môžete vidieť, že zátvorky boli aktualizované rovnako ako prototyp na začiatku skriptu. Vo vnútri stále tlačíte ahoj pomocou printf. Je tu nová funkcia kladie. Toto je pokročilejšia verzia printf.
Čokoľvek vložené do zátvoriek sa vytlačí na konzole a nový riadok ( \n ktoré ste použili predtým) sa pridá automaticky.
Uložte a skompilujte svoj kód rovnakým spôsobom, ako ste to robili predtým – všimnite si, že program môžete pomenovať inak, ak nechcete prepísať svoj predchádzajúci program. Pomenoval som svoje ahoj2:
Ako by ste mali vidieť, program prevezme vstup a použije ho vo funkcii pred odoslaním prednastaveného pozdravu „Všetci!“ opäť poskytuje dva samostatné výstupy pre rovnakú funkciu.
ABC programovania v C
Tento program je jednoduchý, ale niektoré koncepty v ňom nie sú. Pokročilejší kód C musí byť napísaný veľmi dobre, aby sa predišlo zlyhaniu. To je dôvod, prečo si mnohí myslia, že je výborný jazyk, ktorý sa treba naučiť ako prvý pretože novým programátorom vštepuje dobré návyky.
Iní si myslia, že učiť sa C++ je lepší nápad, pretože stavia na C, pričom si zachováva nižšiu kontrolu nad systémom. (Je potrebné zvážiť aj hrdzu – je to vzrušujúci programovací jazyk to je syntakticky podobné C++.)
Jedno je isté: jazyky ako Python sú oveľa priateľskejší k začiatočníkom. Pre starý jazyk sa C stále používa všade, ale Python môže byť jazykom budúcnosti 6 dôvodov, prečo je Python programovacím jazykom budúcnostiChcete sa naučiť alebo rozšíriť svoje znalosti programovania? Tu je dôvod, prečo je Python najlepším programovacím jazykom, ktorý sa tento rok môžete naučiť. Čítaj viac !
Ian Buckley je nezávislý novinár, hudobník, performer a video producent žijúci v Berlíne v Nemecku. Keď nepíše alebo nie je na javisku, hrá sa s elektronikou alebo kódom pre domácich majstrov v nádeji, že sa z neho stane šialený vedec.