Mainos

Ohjelmoinnin oppiminen on kumulatiivista kokemusta. Valitsemasi kielen syntaksin oppimisen lisäksi sinun on opittava myös yleiset periaatteet, joita kaikki ohjelmointikielet käyttävät.

C-ohjelmoinnin ymmärtäminen ja oppiminen voi olla pelottavaa, mutta muutama perusidea, joihin kannattaa tutustua aloittamisen yhteydessä. Yksinkertainen projekti on loistava tapa oppia C: n perusteet.

Joten mistä sinun pitäisi aloittaa? Sanomalla hei!

1. Hei maailma!

Melkein jokaisen koodauskurssin ensimmäinen osa on Hei maailma ohjelmoida. Sen tarkastelu korostaa joitakin tapoja, joilla C eroaa muista kielistä. Aloita avaamalla a tekstieditori tai IDE Tekstieditorit vs. IDE: Kumpi on parempi ohjelmoijille?Valinta edistyneen IDE: n ja yksinkertaisemman tekstieditorin välillä voi olla vaikeaa. Tarjoamme joitakin tietoja, jotka auttavat sinua tekemään tämän päätöksen. Lue lisää valitsemasi ja syötä tämä koodi:

#sisältää /* tämä on Hello World -skripti C */ int main (tyhjä) { printf("Hei, maailma! \n"); paluu 0; }

Tämä lyhyt koodinpätkä tulostuu konsoliin ennen ohjelman lopettamista. Tallenna se helposti muistettavaan paikkaan hei C. Nyt sinun täytyy kääntää ja rakentaa tiedosto.

Sen saaminen juoksemaan

Yleensä sinun ei tarvitse asentaa mitään lisäohjelmistoja tietokoneellesi suorittaaksesi C-skriptejä. Avaa pääteikkuna (tai komentokehote, jos käytät Windowsia) ja siirry hakemistoon, johon tallensit komentosarjan.

Tapa, jolla käännät ja suoritat tiedoston, vaihtelee järjestelmästä toiseen:

  • Windows-käyttäjät: Tee tiedostostasi suoritettava kirjoittamalla cl hello.c ja paina enteriä. Tämä luo samaan kansioon hello.exe-tiedoston, jonka voit suorittaa kirjoittamalla Hei.
  • Linux- ja macOS-käyttäjät: Tyyppi gcc -o hei hei.c ja paina Enter tehdäksesi siitä suoritettavan ja suorita se kirjoittamalla ./Hei.

Mitä tahansa menetelmää käytätkin, komentosarjan suorittamisen pitäisi näyttää tämä:

Tulos, joka näyttää Hello World! luonnos C: ssä

Jos se ei toiminut Windowsissa, varmista, että suoritat sen komentokehote järjestelmänvalvojatilassa. MacOS: ssa sinun on ehkä asennettava Xcode App Storesta ja seuraa näitä ohjeita StackOverflowsta.

Katsotaan nyt ohjelmaa rivi riviltä nähdäksesi, miten se toimii, ja parannellaan sitä!

Konepellin alla: C-kielen ymmärtäminen

Esiprosessorit

Juuri luomasi skripti alkaa kirjaston sisällyttämisellä.

#sisältää 

Skriptin ensimmäinen rivi on nimeltään a esiprosessori. Tämä suoritetaan ennen kuin muu käsikirjoitus on käännetty. Tässä tapauksessa se käskee skriptiä käyttämään stdio.h kirjasto. Eri tehtäviin on saatavilla valtava määrä esiprosessoreita.

Stdio.h huolehtii syötteiden saamisesta ohjelman käyttäjiltä ja tietojen tulostamisesta heille takaisin.

/* tämä on Hello World -skripti C */

Tämä seuraava rivi on kommentti. Kenoviiva ja tähti käskevät kääntäjää jättämään huomioimatta kaiken sen ja viimeisen tähden ja kauttaviivan välillä. Vaikka tämä saattaa tuntua turhalta, on välttämätöntä, että pystyt jättämään itsellesi ja muille selkeät muistiinpanot koodisi toiminnasta.

Päätoiminto

int main (tyhjä)

Jokaisessa C-ohjelmassa on oltava a pää toiminto. Main on funktio, joka palauttaa kokonaisluvun, joka on merkitty int. Hakasulkeet main-sanan jälkeen ovat sen argumentteja, vaikka tässä tapauksessa se ei ota mitään, minkä vuoksi käytät mitätön avainsana.

Kirjoitat suoritettavan koodin kahden aaltosulkeen väliin.

{ printf("Hei, maailma! \n"); paluu 0; }

Toiminnon sisällä kutsut printf() toiminto. Ihan kuin pää(), printf on funktio. Erona on, että printf on funktio stdio kirjasto, jonka sisällytit alussa.

Printf tulostaa konsoliin kaiken suluissa olevan lainausmerkkien välissä. The \n on rivinvaihdoksi kutsuttu pakotussekvenssi, joka käskee kääntäjää siirtymään konsolin seuraavalle riville ennen jatkamista.

Huomaa, että nämä rivit päättyvät puolipisteitä, jota kääntäjä käyttää jakaakseen yhden tehtävän toisesta. Kiinnitä huomiota näihin puolipisteisiin – niiden puuttuminen on suurin syy siihen, että asiat eivät mene hyvin!

Lopuksi funktio palaa numerolla 0, mikä lopettaa ohjelman. The pää() -funktion on aina palautettava kokonaisluku ja paluu = 0; ilmoittaa tietokoneelle prosessin onnistumisesta.

Tämän skriptin jokaisen vaiheen ymmärtäminen on loistava alku sekä C-syntaksin että kielen toiminnan oppimiselle.

2. Omien C-funktioiden luominen

Voit luoda omia mukautettuja toimintoja C: ssä. Sen sijaan, että tulostaisit Hello Worldin päätoiminnossa, luo uusi toiminto, joka tekee sen puolestasi.

void print_for_me() { printf("Hei, maailma! \n"); }

Puretaan tämä.

mitätön on avainsana, joka tarkoittaa, että seuraava toiminto ei palauta mitään.

print_for_me() on funktion nimi, ja tyhjät sulut osoittavat, että se ei vaadi argumentteja toimiakseen. Argumentti on mikä tahansa tieto, joka välitetään funktiolle, jotta se toimisi – myöhemmin lisäät oman argumentin tulosteen muuttamiseksi! Huomautus: Tämä ei ole sama kuin main()-funktio, jonka yläpuolella käytettiin voidia. Tämä funktio ei voi ottaa argumentteja, kun taas tämä voi (mutta tässä tapauksessa sen ei tarvitse).

Koodilohko pitäisi olla sinulle tuttu – se on vain alkuperäisen päätoiminnon tulostuslauseke.

Nyt voit kutsua tätä toimintoa päätoiminnostasi.

int main (tyhjä) { tulosta_minulle(); print_for_me(); paluu 0; }

Tässä näet oman toiminnon käytön edun. Kirjoittamisen sijaan printf("Hei, maailma! \n) joka kerta voit kutsua toimintoa kahdesti.

Tällä hetkellä tämä ei ehkä vaikuta niin tärkeältä, mutta jos print_for_me-funktiosi sisälsi paljon koodirivejä, sen kutsuminen niin helposti säästää aikaa!

Hello world tulostaa kahdesti useiden toimintokutsujen kautta

Tämä on ohjelmoinnin perusidea, johon törmäät koulutuksesi aikana. Kirjoita oma funktiosi kerran sen sijaan, että kirjoitat samoja suuria koodipaloja uudestaan ​​ja uudestaan.

3. Funktioprototyyppien käyttäminen C: ssä

Prototyypit ovat yksi tärkeimmistä tavoista, joilla aloittelija C eroaa muista kielistä. Lyhyesti sanottuna prototyyppi on kuin esikatselu myöhemmin määritetystä funktiosta. Jos kirjoitat print_for_me()-funktion pääfunktion jälkeen, saatat saada varoituksen kääntäessäsi:

Yhdistelmäkuva, jossa näkyy koodi ilman prototyyppiä ja c-kääntäjän antama varoitus

Varoitusviesti kertoo, että kääntäjä ajoi print_for_me-funktioon ennen sen ilmoittamista, joten se ei voinut olla varma, että se toimisi oikein, kun ohjelma suoritetaan.

Koodi toimisi edelleen, mutta varoitus voidaan välttää kokonaan käyttämällä prototyyppiä.

#sisältää void print_for_me(); int main (tyhjä) { tulosta_minulle(); print_for_me(); paluu 0; } void print_for_me() { printf("Hei, maailma! \n"); }

Katsomalla koko ohjelmaa voit nähdä, että print_for_me():n prototyyppi on olemassa ohjelman alussa, mutta se ei sisällä mitään. Prototyyppifunktio näyttää kääntäjälle, miltä funktion tulee näyttää ja vaatiiko se argumentteja vai ei.

Tämä tarkoittaa, että kun kutsut sitä pääfunktiossa, kääntäjä tietää, kutsutaanko sitä oikein ja voi tarvittaessa antaa varoituksen tai virheen. Tämä saattaa tuntua oudolta nyt, mutta niiden tietäminen nyt auttaa tulevaisuudessa.

Hello world tulostaa kahdesti useiden toimintokutsujen kautta

Tämä ohjelma toimii edelleen ilman prototyyppiä, mutta niitä on hyvä käyttää. Tulos näyttää edelleen samalta toistaiseksi, muuta sitä henkilökohtaisemmaksi!

4. Argumenttien välittäminen C-funktioille

Skriptin muuttaminen

Tässä viimeisessä vaiheessa kysyt käyttäjän nimeä ja nauhoitat hänen syötteensä. Sitten käytät sitä aiemmin luomassasi funktiossa. C: ssä sanoja ei tunneta merkkijonoina kuten muissa ohjelmointikielissä.

Sen sijaan ne ovat joukko yksittäisiä merkkejä. Taulukon symboli on [] ja avainsana on hiiltyä. Aloita päivittämällä prototyyppitoimintosi skriptin alussa:

#sisältää  void print_for_me (char name[]); 

Nyt kääntäjä tietää, että funktio myöhemmin skriptissä ottaa joukon merkkejä nimeltä nimi. Toistaiseksi tätä hahmoa ei ole olemassa. Päivitä päätoimintosi luodaksesi sen ja käytä sitä käyttäjän syötteen tallentamiseen:

int main (tyhjä) { merkin nimi[20]; printf("Anna nimi: "); scanf("%s", nimi); tulosta_minulle (nimi); print_for_me("Kaikki!"); paluu 0; }

Mainin ensimmäinen rivi luo merkkijonon, jossa on 20 mahdollista välilyöntiä nimeltä nimi. Seuraavaksi käyttäjää pyydetään syöttämään nimensä printf-komennolla. Seuraavalla rivillä käytetään uutta funktiota nimeltä scanf joka ottaa seuraavan sanan, jonka käyttäjä kirjoittaa.

The "%s" kertoo funktiolle, että sen pitäisi tallentaa tiedot merkkijonona, ja kutsuu sitä nimi.

Toiminnon muokkaaminen

Nyt kun soitat print_for_me, voit sisällyttää nimi suluissa. Seuraavalla rivillä näet, että voit myös ohittaa muita merkkejä, kunhan ne ovat lainausmerkeissä. Molemmilla kerroilla suluissa oleva välitetään print_for_me-funktiolle.

Muokkaa sitä nyt käyttääksesi uusia antamiasi tietoja:

void print_for_me (merkin nimi[]) { printf("Hei, "); laittaa (nimi); }

Tästä näet, että sulut on päivitetty aivan kuten prototyyppi skriptin alussa. Sisällä tulostat silti hello printf: llä. Tässä on uusi toiminto laittaa. Tämä on edistyneempi versio printf: stä.

Kaikki hakasulkeisiin merkityt tiedot tulostetaan konsoliin ja rivinvaihto ( \n käyttämäsi aiemmin) lisätään automaattisesti.

Tallenna ja käännä koodi samalla tavalla kuin aiemmin – huomaa, että voit nimetä ohjelman jollain muulla tavalla, jos et halua korvata aiempaa ohjelmaa. Nimesin omani hei 2:

Valmis ohjelma C

Kuten sinun pitäisi nähdä, ohjelma ottaa syötteen ja käyttää sitä toiminnossa ennen kuin lähettää esiasetetun tervehdyksen "Kaikki!" antaa jälleen kaksi erillistä lähtöä samalle toiminnolle.

C-ohjelmoinnin ABC

Tämä ohjelma on yksinkertainen, mutta jotkin sen käsitteet eivät ole. Edistyneempi C-koodi on kirjoitettava erittäin hyvin kaatumisten estämiseksi. Tästä syystä monet ajattelevat, että se on erinomainen kieli opeteltavaksi ensin koska se juurruttaa hyviä tapoja uusille ohjelmoijille.

Toisten mielestä C++:n oppiminen on parempi idea, koska se perustuu C: hen säilyttäen samalla alhaisemman järjestelmänhallinnan. (Myös ruostetta on otettava huomioon - se on jännittävä ohjelmointikieli joka on syntaktisesti samanlainen kuin C++.)

Yksi asia on varma: kielet, kuten Python ovat paljon aloittelijaystävällisempiä. Vanhalle kielelle C: tä käytetään edelleen kaikkialla, mutta Python voi olla tulevaisuuden kieli 6 syytä, miksi Python on tulevaisuuden ohjelmointikieliHaluatko oppia tai laajentaa ohjelmointitaitojasi? Tästä syystä Python on tämän vuoden paras ohjelmointikieli. Lue lisää !

Ian Buckley on freelance-toimittaja, muusikko, esiintyjä ja videotuottaja, joka asuu Berliinissä, Saksassa. Kun hän ei ole kirjoittamassa tai lavalla, hän puuhailee tee-se-itse-elektroniikan tai koodin parissa toivoen, että hänestä tulisi hullu tiedemies.