1 / 13

C-ohjelman käännösvaiheet

C-ohjelman käännösvaiheet. C-esiprosessori. Esiprosessorin komentorivien ensimmäinen merkki on # Esiprosessori poistaa omat komentorivinsä Muuntaa lähdekoodia komentojen perusteella gcc –E ajaa tekstin vain esiprosessorin läpi. Esiprosessorin komentoja. #define.

luke
Download Presentation

C-ohjelman käännösvaiheet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C-ohjelman käännösvaiheet

  2. C-esiprosessori • Esiprosessorin komentorivien ensimmäinen merkki on # • Esiprosessori poistaa omat komentorivinsä • Muuntaa lähdekoodia komentojen perusteella • gcc –E ajaa tekstin vain esiprosessorin läpi

  3. Esiprosessorin komentoja

  4. #define • Esiprosessori korvaa mkron nimen sen tekstillä #define VIRHE ”*** Virhe %d :%s.\n” • Ehdollinen kääntäminen: #if 0 /* esikääntäjän avulla myös kommentteja sisältävät lauseet voidaan poistaa (sisäkkäiset kommentit eivät ole sallittuja) */ #endif

  5. #include • Kaksi muotoa: #include <tiedostonnimi> #include ”tiedoston_nimi” • Eroavat tiedoston etsinnän perusteella Standardi kirjastolle Omille headereille

  6. Assert • Mikäli assert makron parametrin arvo on nolla tulostetaan viesti ja kutsutaan abort():a • Käytetään ohjelmankehityksen aikana verifioimaan ajoaikaisia oletuksia • Voidaan poistaa kun ohjelma on valmis=> ei overheadia • Mikäli NDEBUG makro on määritelty ennen headerin assert.h lukemista assert on disabloitu assert(x>0 && x<10);

  7. Kirjastofunktiot • Määrittelytiedostot (headerit) sisältävätkirjastofunktioiden prototyypit makrot ja tyypit • 15 erillistä headeria=> ainoastaan ne käännetään joita käytetään

  8. Matemaattiset funktiot<math.h> • Argumentit ja paluuarvo ovat tyyppiä double • gcc –ansi –lm –Wall –o nimi nimi.c • Trigonometriset funktiot (kulmat radiaaneina):cos, sin, tan, acos, asin, atan • Hyperboliset funktiot: cosh, sinh, tanh • Exponetti ja logaritmifunktiot: exp, log, log10 • Potenssifunktio: pow • Neliöjuuri: sqrt

  9. Lisää matemaattisia funktioita<math.h> • Itseisarvofunktio: fabs • Pyöristys alas-ja ylöspäin lähimpään kokonaislukuun: floor ja ceil • Jakojäännös: fmod • modf jakaa luvun kokonais ja desimaaliosaan

  10. Merkkijonojen käsittely funktiot<string.h> • Riittävä kohdemerkkijonon koko on ohjelmoijan vastuulla • Merkkijonon yhdistäminen: strcat, strncat • Merkkijonon kopioiminen: strcpy, strncpy • Merkkijonon pituus: strlen • Merkkijonojen vertailu: strcmp, strncmp • strncat, strncpy ja strncmp funktiot käsittelevät määritellyn määrän merkkejä

  11. Input/output<stdio.h> • Laajin kirjaston osa • Tiedoston avaaminen palauttaa osoittimenFILE tietueeseen • Kolme tiedostovirtaa avataan automaattisesti:stdin, stdout ja stderr • Tavallisesti ne liittyvät näppäimistöön, näyttöön ja näyttöön

  12. Tiedostovirrat • Teksti ja binäärivirtoja • Tekstivirta ei takaa yksi-yhteen kuvaustatiedostoon kirjoitetun ja tiedostoon tulevan datan välillä • Binäärivirta takaa sen • Tiedosto yhdistetään virtaan avaa operaatiolla • Yhteys katkaistaan sulje operaatiolla

  13. Tiedon syöttöön liittyviä funktioita<stdio.h> • Tietovirtoja käyttävät funktiot alkavat f kirjaimella • Merkin lukeminen: getc, getchar, fgetc • Merkin kirjoittaminen: putc, putchar, putc • Merkkijonon lukeminen: fgets • Merkkijonon kirjoittaminen: puts, fputs • Muotoiltu syötön lukeminen: scanf, fscanf, sscanf • Muotoiltu tulostaminen: printf, fprintf, sprintf

More Related