Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
12
JęzykC++.StandardISOwpraktyce
C++możnatraktowaćjakociągzdańnapisanychwtymjęzyku.Zdaniatemusząbyćzgodne
zregułamiskładni(gramatyki,syntaktyki)języka.Tłumaczenietekstuprogramunapostać
binarnądokonujeinnyprogram,nazywanytranslatoremlubkompilatorem.
Programźródłowypoedycjizapisujemywplikuonazwiedopuszczalnejwdanymsys-
temieoperacyjnym;rozszerzenienazwypliku0cppinformuje,żejesttopostaćźródłowa.
Programzapisanywpliku,np.Pr1.cpp,możnaprzetłumaczyćzapomocądowolnegokompila-
tora,np.GNUgcc/g++wsystemieUnix,BorlandC++Builderbcb6wsystemieWindows.
Wpisaniewwierszurozkazowympoleceniag++Pr1.cppspowodujewykonanieprzezkompi-
latorszereguczynności,zilustrowanychponiższymrysunkiemdlaśrodowiskagcc/g++.
3r1lCSS
3rHSroCHSor
Rysunek1030Etapyprocesukompilacji
CSS
KomSilator
J++
$SHmElHr
aS
/iQkHr
lG
Napierwszymetapieprogramźródłowyjestprzetwarzanyprzezpreprocesor.Mówiąc
ogólnie,preprocesorjesttoprograminterpretujący,któryprzetwarzawejściowytekstpro-
gramuźródłowegonatekstwyjściowy,zgodniezpoleceniaminazywanymidyrektywami.Dy-
rektywypreprocesoramogąwystępowaćwdowolnymmiejscuprogramu,apreprocesorrozróż-
niajedziękipoprzedzeniukażdejznakiem#(hash).
PreprocesorjęzykaC++przekształcaprogramPr1.cppprzedwłaściwąkompilacją:roz-
wijastałesymboliczneimakrodefinicje(dyrektywa#define),wykonujedyrektywy#include,tj.
dołączatzw.plikinagłówkowe.
Kompilatortworzykodwjęzykuasemblera,odpowiadającyinstrukcjomwplikuźródło-
wym.NastępnieasemblertworzykodpośredniwplikuPr1.o(środowiskouniksowe)lub
Pr1.obj(środowiskoWindows),doktóregolinker(konsolidator)dołączaodpowiedniemoduły
biblioteczneitworzykodwynikowywplikua.out(środowiskouniksowe)luba.exe(środowis-
koWindows).Wywołaniea.exe(luba.out)spowodujewykonanienaszegoprogramuzgodnie
zopisanąwyżejkolejnością.
Jeżelidysponujemytzw.zintegrowanymśrodowiskiemprogramowym(IntegratedDeve-
lopmentEnvironment,IDE),toprzygotowanieiprzetwarzanieprogramumożnazilustrować
pokazanymniżejrysunkiem.
DokategoriiśrodowiskzintegrowanychnależąniektóreproduktyfirmBorland(np.Bor-
landbc3.1,bc5.01,bcb6),Eclipse,VIDEiDev-C++.
Pokazanenarysunkukodywynikowedołączanemogąpochodzićzbibliotekistandardo-
wej(np.iostream.h)izwłasnychbibliotektwórcyprogramu.Iwjednym,iwdrugimwypadku
będątoprzeważnieplikinagłówkowe(nagłówki),którychnazwamazwyczajoworozszerze-
nie.h(hodheader)lubniemarozszerzenia.
$Uwaga!Wewszystkichprogramachprzetwarzanychwśrodowiskubcb6,Dev-C++iin-
nych,nowszychniżBorlandbc5.01,zamiastdyrektywyinkluzji#include<iostream.h>
możnanapisać
#include<iostream>
usingnamespacestd;