Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Istotneznaczeniematutajdrugainstrukcjawfunkcjimain.Kompilator
niewyznaczapierwiastkakwadratowegoz1764wczasiewykonania,leczwy-
liczagowcześniejiużywaodpowiedniejinstrukcji,byprzypisaćdozmiennej
xdocelowąwartość42.Oczywiściemożnaobliczyćpierwiastekkwadratowyza
pomocąkalkulatora,anastępniewstawićwynik,jednakużycieconstexprza-
pewniawielekorzyści.Dziękitemumożnauniknąćwielubłędówzwiązanych
zręcznymkopiowaniemiwklejaniemorazsprawić,bykodstałsiębardziej
ekspresywny.
Uwaga
Jeślinieznaszasemblerax86,zapoznajsięzksiążkąAsembler.Sztukaprogramo-
wania,wydanieII,autorstwaRandallaHyde’a,atakżezProfessionalAssembly
LanguageautorstwaRichardaBluma.
UaktualnieniejęzykaCdoSuperC
NowoczesnekompilatoryC++zaspokojąwiększośćTwoichnawykówzwiąza-
nychzprogramowaniemwC.Dziękitemuprościejbędziezastosowaćkilka
taktycznychsubtelności,którezapewniaC++,zjednoczesnymcelowymuni-
kaniemwiększegozagłębianiasięwtenjęzyk.TenstylC++nazwijmygo
SuperCnależyprzeanalizowaćzkilkupowodów.Popierwsze,doświadczeni
programiściCmogąodrazuskorzystaćzzastosowaniawswoichprogramach
prostychkoncepcjijęzykaC++.Podrugie,SuperCniejestidiomatycznym-
zykiemC++.ZwykłeużyciereferencjiisłówkluczowychautowprogramieC
możeodrazusprawić,żekodstaniesiębardziejniezawodnyiczytelny.Musisz
jednakpoznaćtakżeinnekoncepcje,abywpełniskorzystaćznowegojęzyka.
Potrzecie,wprzypadkuniektórychprostychśrodowisk(chodziprzykładowo
ooprogramowaniewbudowane,niektórejądrasystemuoperacyjnegoiprze-
twarzanieheterogeniczne)dostępnenarzędzianieobsługująwpełnijęzyka
C++.Wtakichsytuacjachmożnaskorzystaćzconajmniejniektórychidio-
mówC++,aSuperCbędzieprawdopodobnieobsługiwany.Wtympodroz-
dzialeomówiononiektórekoncepcjejęzykaSuperC,któremożeszodrazu
zastosowaćwswoimkodzie.
Uwaga
NiektórekonstrukcjeobsługiwaneprzezjęzykCniedziałająwC
++
.Abydowiedziećsię
więcej,zapoznajsięzodnośnikamiznajdującymisięnastronieinternetowejpoświęconej
tejksiążce(https://ccc.codes).
Przeciążaniefunkcji
Weźpoduwagęnastępującefunkcjekonwertująceistniejącewstandardowej
biblioteceC:
char*itoa(intvalue,char*str,intbase);
char*ltoa(longvalue,char*buffer,intbase);
char*ultoa(unsignedlongvalue,char*buffer,intbase);
Celtychfunkcjijesttakisam:przekształcająonetypcałkowynałańcuch
językaC.WjęzykuCkażdafunkcjamusimiećunikatowąnazwę.Inaczejjest
WstępdlaprogramistówC
xxxix