Käytännön C-ohjelmointi, 3. painos by Steve Oualline
Miten C toimii
C on suunniteltu sillaksi ohjelmoijan ja raa’an tietokoneen välillä. Ajatuksena on antaa ohjelmoijan järjestää ohjelma tavalla, jonka hän voi helposti ymmärtää. Kääntäjä kääntää sitten kielen sellaiseksi, että kone voi käyttää sitä.
Tietokoneohjelmat koostuvat kahdesta pääosasta: datasta ja käskyistä. Tietokone asettaa näille kahdelle osalle vain vähän tai ei lainkaan organisaatiota. Loppujen lopuksi tietokoneet on suunniteltu olemaan mahdollisimman yleisiä. Ohjelmoijan tulisi asettaa organisaationsa tietokoneelle, ei päinvastoin.
Tietokoneen data tallennetaan sarjana tavuja. C järjestää nuo tavut käyttökelpoiseksi dataksi. Ohjelmoija käyttää datadeklaraatioita kuvaamaan tietoa, jonka kanssa hän työskentelee. Esimerkiksi:
int total; /* Total number accounts */
kertoo C:lle, että haluamme käyttää tietokoneen muistin osaa kokonaisluvun total
tallentamiseen. Annamme kääntäjän päättää, mitä tiettyjä tavuja muistista käytetään; tämä päätös on pieni kirjanpidollinen yksityiskohta, josta emme halua huolehtia.
Muuttujamme total
on yksinkertainen muuttuja. Se voi pitää sisällään vain yhden kokonaisluvun ja kuvata vain yhtä summaa. Sarja kokonaislukuja voidaan järjestää joukkoon seuraavasti:
int balance; /* Balance (in cents) for all 100 accounts */
Jälleen C huolehtii yksityiskohdista, jotka koskevat tämän järjestelyn määräämistä tietokoneen muistiin. Lopuksi on olemassa monimutkaisempia tietotyyppejä. Esimerkiksi suorakulmiolla voi olla leveys, korkeus, väri ja täyttökuvio. C:n avulla voimme järjestää nämä neljä elementtiä yhdeksi ryhmäksi, jota kutsutaan rakenteeksi.
struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};
Piste on siinä, että rakenteiden avulla ohjelmoija voi järjestää datan tarpeidensa mukaan riippumatta siitä, kuinka yksinkertaista tai monimutkaista data on. Tämän datan kuvauksen kääntäminen joksikin tietokoneen käyttökelpoiseksi on kääntäjän, ei ohjelmoijan tehtävä.
Mutta data on vain yksi osa ohjelmaa. Tarvitsemme myös ohjeita. Tietokoneen osalta se ei tiedä mitään ohjeiden asettelusta. Se tietää, mitä se tekee nykyiselle käskylle ja mistä se saa seuraavan käskyn, mutta ei mitään muuta.
C on korkean tason kieli. Sen avulla voimme kirjoittaa korkean tason lausekkeen kuten:
area = (base * height) / 2.0; /* Compute area of triangle */
Kääntäjä kääntää tämän lausekkeen sarjaksi kryptisiä matalan tason konekäskyjä. Tällaista lauseketta kutsutaan osoituslausekkeeksi. Sitä käytetään aritmeettisen lausekkeen arvon laskemiseen ja tallentamiseen.
Voidaan myös käyttää ohjauslausekkeita ohjaamaan käsittelyjärjestystä. Lausekkeet, kuten if- ja switch-lausekkeet, antavat tietokoneelle mahdollisuuden tehdä yksinkertaisia päätöksiä. Lausekkeita voidaan toistaa yhä uudelleen käyttämällä silmukkalausekkeita, kuten while- ja for-lausekkeita.
Lausekkeiden ryhmiä voidaan kietoa yhteen funktioiden muodostamiseksi. Näin meidän tarvitsee kirjoittaa yleiskäyttöinen funktio suorakulmion piirtämiseen vain kerran, ja sitten voimme käyttää sitä uudelleen aina, kun haluamme piirtää uuden suorakulmion.
C tarjoaa ohjelmalle runsaan joukon vakiofunktioita, jotka suorittavat yleisiä toimintoja, kuten hakua, lajittelua, syöttöä ja tulostusta.
Joukko toisiinsa liittyviä funktioita voidaan ryhmitellä yhteen lähdetiedostoon. Useita lähdetiedostoja voidaan kääntää ja linkittää yhteen ohjelmaksi.
Yksi C-kielen tärkeimmistä tavoitteista on käskyjen järjestäminen uudelleenkäytettäviksi komponenteiksi. Voithan kirjoittaa ohjelmia paljon nopeammin, jos voit ”lainata” suurimman osan koodistasi jostain muualta. Uudelleenkäytettävien funktioiden ryhmät voidaan yhdistää kirjastoksi. Näin kun tarvitset esimerkiksi lajittelurutiinia, voit napata kirjastosta vakiofunktion qsort
ja linkittää sen ohjelmaasi.
Datadeklaraatiot, rakenteet ja ohjauslausekkeet sekä muut C-kielen elementit eivät ole tietokoneen hyödyksi. Tietokone ei erota miljoonaa satunnaista tavua oikeasta ohjelmasta. Kaikki C-kielen elementit on suunniteltu niin, että ohjelmoija voi ilmaista ja järjestää ajatuksensa selkeästi hänelle, ei tietokoneelle, räätälöidyllä tavalla.
Organisaatio on avain hyvien ohjelmien kirjoittamiseen. Esimerkiksi tässä kirjassa tiedät, että sisällysluettelo on edessä ja hakemisto takana. Käytämme tätä rakennetta, koska kirjat on järjestetty niin. Järjestäminen helpottaa tämän kirjan käyttöä.
C-kielen avulla voit järjestää ohjelmasi yksinkertaisen mutta tehokkaan syntaksin avulla. Tämä kirja menee C-syntaksia pidemmälle ja opettaa sinulle tyylisääntöjä, joiden avulla voit tehdä erittäin luettavia ja luotettavia ohjelmia. Yhdistämällä tehokkaan syntaksin ja hyvän ohjelmointityylin voit luoda tehokkaita ohjelmia, jotka suorittavat monimutkaisia ja ihmeellisiä operaatioita, mutta jotka on myös järjestetty niin, että ne on helppo ymmärtää, kun muutosten aika koittaa.
Leave a Reply