Reklaam

Programmeerimise õppimine on kumulatiivne kogemus. Lisaks valitud keele süntaksi õppimisele peate õppima ka üldisi põhimõtteid, mida kõik programmeerimiskeeled kasutavad.

C-programmeerimise mõistmine ja õppimine võib olla hirmuäratav, kuid alustamisel tasub tutvuda mõne põhiideega. Lihtne projekt on suurepärane viis C-i põhitõdede õppimiseks.

Niisiis, kust peaksite alustama? Öeldes tere!

1. Tere, Maailm!

Peaaegu iga kodeerimiskursuse esimene osa on Tere, Maailm programm. Selle üksikasjalikult käsitlemine toob esile mõned viisid, kuidas C erineb teistest keeltest. Alustuseks avage a tekstiredaktor või IDE Tekstiredaktorid vs. IDE-d: milline neist on programmeerijatele parem?Täpsema IDE ja lihtsama tekstiredaktori vahel valimine võib olla keeruline. Pakume mõningaid teadmisi, mis aitavad teil seda otsust teha. Loe rohkem oma valikul ja sisestage see kood:

#kaasa /* see on Hello Worldi skript C-s */ int main (tühine) { printf("Tere, maailm! \n"); tagasi 0; }

See lühike koodijupp prinditakse konsooli enne programmi lõpetamist. Salvestage see hõlpsasti meeldejäävasse kohta

instagram viewer
tere.c. Nüüd peate oma faili kompileerima ja looma.

Käivitama panemine

Tavaliselt ei pea te C-skriptide käitamiseks arvutisse lisatarkvara installima. Avage terminaliaken (või käsuviip, kui kasutate Windowsi) ja liikuge kataloogi, kuhu skripti salvestasite.

Faili kompileerimise ja käitamise viis on süsteemiti erinev.

  • Windowsi kasutajad: Muutke oma fail tippides käivitatavaks cl tere.c ja vajutades enter. See loob samasse kausta hello.exe, mida saate tippides käivitada Tere.
  • Linuxi ja macOS-i kasutajad: Tüüp gcc -o tere tere.c ja vajutage sisestusklahvi, et muuta see käivitatavaks, ja käivitage see tippides ./Tere.

Ükskõik millist meetodit kasutate, peaks skripti käitamine näitama teile järgmist.

Väljund, mis näitab Tere maailm! eskiis C-s

Kui see Windowsis ei tööta, veenduge, et käivitaksite käsuviip administraatori režiimis. MacOS-i jaoks peate võib-olla installima Xcode'i rakenduste poest ja järgige neid samme StackOverflow'st.

Nüüd vaatame programmi rida rea ​​haaval, et näha, kuidas see töötab, ja täiustame seda!

Kapoti all: C-keele mõistmine

Eeltöötlejad

Äsja loodud skript algab teegi kaasamisega.

#kaasa 

Skripti esimest rida nimetatakse a eeltöötleja. Seda tehakse enne ülejäänud skripti koostamist. Sel juhul käsib see skriptil kasutada stdio.h raamatukogu. Erinevate ülesannete jaoks on saadaval tohutult palju eelprotsessoreid.

Stdio.h hoolitseb programmi kasutajalt sisendi saamise ja teabe talle tagasi väljastamise eest.

/* see on Hello Worldi skript C-s */

See järgmine rida on kommentaar. Kaldkriips ja tärn käsivad koostajal ignoreerida kõike, mis jääb selle ja sulgeva tähe ja kaldkriipsu vahele. Kuigi see võib tunduda mõttetu, on oluline harjumus endale ja teistele oma koodi tegemiste kohta selgeid märkmeid jätta.

Peamine funktsioon

int main (tühine)

Igal C programmil peab olema a peamine funktsiooni. Main on funktsioon, mis tagastab täisarvu, mida tähistatakse int. Peamise järel olevad sulud on mõeldud argumentide jaoks, kuigi sel juhul pole selleks ühtegi, mistõttu kasutate tühine märksõna.

Sina kirjutad läbiviidava koodi kahe lokkis sulgu vahele.

{ printf("Tere, maailm! \n"); tagasi 0; }

Funktsiooni sees helistate printf() funktsiooni. Just nagu peamine (), printf on funktsioon. Erinevus seisneb selles, et printf on funktsioon stdio alguses kaasatud raamatukogu.

Printf prindib konsooli kõik, mis on sulgudes, jutumärkide vahel. The \n on paojärjestus nimega reavahetus, mis käsib kompilaatoril enne jätkamist konsooli järgmisele reale hüpata.

Pange tähele, et need read lõpevad semikoolonid, mida kompilaator kasutab ühe ülesande jagamiseks järgmisest. Pöörake nendele semikoolonitele suurt tähelepanu – nende vahelejätmine on kõige valesti läinud põhjus number üks!

Lõpuks naaseb funktsioon numbriga 0, mis lõpetab programmi. The peamine () funktsioon peab alati tagastama täisarvu ja tagastamine = 0; annab arvutile signaali, et protsess oli edukas.

Selle skripti iga sammu mõistmine on suurepärane algus nii C-süntaksi kui ka keele toimimise õppimisel.

2. Omaenda C-funktsioonide loomine

Saate luua oma kohandatud funktsioone C-s. Selle asemel, et printida põhifunktsioonis Hello World, looge uus funktsioon, mis seda teie eest teeb.

tühine print_for_me() { printf("Tere, maailm! \n"); }

Teeme selle lahti.

tühine on märksõna, mis tähendab, et järgmine funktsioon ei tagasta midagi.

print_for_me() on funktsiooni nimi ja tühjad sulud näitavad, et selle tööks pole argumente vaja. Argument on suvaline teave, mis edastatakse funktsioonile, et see toimiks – hiljem lisate väljundi muutmiseks oma argumendi! Märge: See ei ole sama mis funktsioon main(), mille kohal kasutati void. See funktsioon ei saa argumente vastu võtta, samas kui see võib (kuid antud juhul ei pea).

Koodiplokk peaks olema teile tuttav – see on lihtsalt algse põhifunktsiooni prindilause.

Nüüd saate sellele funktsioonile helistada oma põhifunktsioonist.

int main (tühine) { print_for_me(); print_for_me(); tagasi 0; }

Siin näete oma funktsiooni kasutamise eeliseid. Selle asemel, et kirjutada printf("Tere, maailm! \n) iga kord saate funktsiooni kaks korda kutsuda.

Praegu ei pruugi see nii oluline tunduda, kuid kui teie funktsioon print_for_me sisaldas palju koodiridu, säästate selle nii lihtsalt välja!

Tere maailm, väljastatakse kaks korda mitme funktsioonikõne kaudu

See on programmeerimise põhiidee, millega puutute kokku kogu oma haridustee jooksul. Kirjutage oma funktsioon üks kord, selle asemel, et kirjutada ikka ja jälle samu suuri kooditükke.

3. Funktsiooni prototüüpide kasutamine C-s

Prototüübid on üks peamisi viise, kuidas algaja C erineb teistest keeltest. Lühidalt öeldes on prototüüp nagu hiljem määratletud funktsiooni eelvaade. Kui kirjutate funktsiooni print_for_me() pärast põhifunktsiooni, võite kompileerimisel saada hoiatuse:

Komposiitpilt, millel on kood ilma prototüübita ja hoiatus, mille c-kompilaator annab

Hoiatusteade ütleb teile, et kompilaator käivitas funktsiooni print_for_me enne selle deklareerimist, mistõttu ei saanud ta olla kindel, et see töötab programmi käivitamisel õigesti.

Kood töötaks endiselt, kuid hoiatust saab prototüüpi kasutades üldse vältida.

#kaasa void print_for_me(); int main (tühine) { print_for_me(); print_for_me(); tagasi 0; } tühine print_for_me() { printf("Tere, maailm! \n"); }

Tervet programmi vaadates näete, et print_for_me() prototüüp on programmi alguses olemas, kuid ei sisalda midagi. Prototüübi funktsioon näitab kompilaatorile, kuidas funktsioon peaks välja nägema ja kas see nõuab argumente või mitte.

See tähendab, et kui sa seda põhifunktsioonis välja kutsud, teab kompilaator, kas seda kutsutakse õigesti, ja võib vajaduse korral väljastada hoiatuse või vea. See võib praegu tunduda kummaline, kuid nende praegune teadmine aitab tulevikus.

Tere maailm, väljastatakse kaks korda mitme funktsioonikõne kaudu

See programm töötab endiselt ilma prototüübita, kuid nende kasutamine on hea tava. Väljund näeb praegu endiselt välja sama, muutke seda isiklikumaks muutmiseks!

4. Argumentide edastamine C-funktsioonidele

Skripti muutmine

Viimases etapis küsite kasutaja nime ja salvestate tema sisendi. Seejärel kasutate seda varem loodud funktsioonis. C-s ei tunta sõnu stringidena nagu teistes programmeerimiskeeltes.

Selle asemel on tegemist üksikute märkide massiivi. Massiivi sümbol on [] ja märksõna on char. Alustage oma prototüübi funktsiooni värskendamisega skripti alguses:

#kaasa  void print_for_me (char name[]); 

Nüüd teab kompilaator, et skripti hilisem funktsioon võtab kutsutavate märkide massiivi nimi. Siiani pole seda tegelast olemas. Selle loomiseks värskendage oma põhifunktsiooni ja kasutage seda kasutaja sisendi salvestamiseks:

int main (tühine) { märgi nimi[20]; printf("Sisesta nimi: "); scanf("%s", nimi); print_for_me (nimi); print_for_me("Kõik!"); tagasi 0; }

Põhirea esimene rida loob märgimassiivi 20 võimaliku tühikuga nimega nimi. Järgmisena palutakse kasutajal printf abil oma nimi sisestada. Järgmisel real kasutatakse uut funktsiooni nimega scanf mis võtab järgmise sõna, mille kasutaja sisestab.

The "%s" ütleb funktsioonile, et see peaks salvestama andmed stringina, ja kutsub seda välja nimi.

Funktsiooni muutmine

Nüüd, kui helistate print_for_me, saate lisada nimi sulgudes. Järgmisel real näete, et saate edastada ka teisi märke, kui need on jutumärkide vahel. Mõlemal korral antakse sulgudes olev üle funktsioonile print_for_me.

Muutke seda nüüd, et kasutada uut teavet, mille te talle annate:

tühine print_for_me (tähemärgi nimi[]) { printf("Tere, "); paneb (nimi); }

Siin näete, et sulgusid on värskendatud täpselt nagu prototüüpi skripti alguses. Sees trükite ikka tere kasutades printf. Siin on uus funktsioon paneb. See on printfi täiustatud versioon.

Kõik, mis on sulgudes, prinditakse konsooli ja reavahetus ( \n mida kasutasite varem) lisatakse automaatselt.

Salvestage ja kompileerige oma kood samamoodi nagu varem – pange tähele, et kui te ei soovi oma varasemat programmi üle kirjutada, võite programmile ka teisiti nimetada. Panin omale nime tere2:

Valmis programm C-s

Nagu näete, võtab programm sisendi ja kasutab seda funktsioonis enne eelseadistatud tervituse saatmist "Kõik!" andes samale funktsioonile jälle kaks eraldi väljundit.

C-programmeerimise ABC

See programm on lihtne, kuid mõned selles sisalduvad mõisted mitte. Täiustatud C-kood tuleb kokkujooksmiste vältimiseks väga hästi kirjutada. Seetõttu arvavad paljud, et see on suurepärane keel, mida kõigepealt õppida kuna see juurutab uutesse programmeerijatesse häid harjumusi.

Teised arvavad, et C++ õppimine on parem idee, kuna see tugineb C-le, säilitades samal ajal madalama süsteemikontrolli. (Kaaluda tuleb ka roostet – see on põnev programmeerimiskeel mis on süntaktiliselt sarnane C++-ga.)

Üks on kindel: keeled nagu Python on palju algajasõbralikumad. Vana keele puhul kasutatakse endiselt igal pool C-d, kuid Python võib olla tuleviku keel 6 põhjust, miks Python on tuleviku programmeerimiskeelTahad õppida või täiendada oma programmeerimisoskusi? Siin on põhjus, miks Python on sel aastal parim programmeerimiskeel, mida õppida. Loe rohkem !

Ian Buckley on vabakutseline ajakirjanik, muusik, esineja ja videoprodutsent, kes elab Saksamaal Berliinis. Kui ta ei kirjuta ega laval, nokitseb ta isetegemise elektroonika või koodi kallal, lootuses saada hulluks teadlaseks.