Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

C-ohjelman käännösvaiheet

Samankaltaiset esitykset


Esitys aiheesta: "C-ohjelman käännösvaiheet"— Esityksen transkriptio:

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
#include lisää tekstiä toisesta tiedostosta #define määrittelee makron #undef poista makro määrittely #if sisällytä tekstiä jos vakioilmaisu on tosi #ifdef sisällytä tekstiä jos makro on määritelty #ifndef #ifdef:n vastakohta #elif jos #if ei tosi niin testaa tämä #else valinnainen oletustapaus #endif päättää ehdollisen tekstin

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>
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ät kirjastofunktioiden 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 osoittimen FILE 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 kuvausta tiedostoon 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


Lataa ppt "C-ohjelman käännösvaiheet"

Samankaltaiset esitykset


Iklan oleh Google