Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Tabela5-1Wyrażeniaprzykładowe
Wyrażenie
z/sqrt(2.0)
Typ
double-Complex
Jakwidaćwostatnimprzykładzieztabeli5-1,wyrażeniazłożonesątworzonezapomocą
operatora,któregooperandamisąwyrażenia.Sameoperandymogąbyćwyrażeniami
pierwotnymilubzłożonymi.Naprzykładmnożnikiemwmnożeniumożebyćwywołanie
funkcji.Podobnie,argumentywwywołaniufunkcjimogąmiećpostaćwyrażeniazłożo-
negozkilkuoperatorów,jakwtymprzykładzie:
2.0*sin(3.14159*fAngleDegrees/180.0)
Jaksąprzetwarzanewyrażenia
Zanimzaczniemyszczegółoworozważaćposzczególneoperatory,wtympodrozdziale
wyjaśnimykilkapodstawowychzasad,którepomogąnamzrozumieć,jaksąprzetwarzane
wyrażeniawjęzykuC.
Zpewnościądużeznaczeniewprzetwarzaniuwyrażeńzłożonychmająpriorytetiłącz-
nośćoperatorów,leczniemniejważnawzrozumieniudziałaniaprogramuCjestselekcja
generyczna,L-wartościipunktysekwencji.
Selekcjegeneryczne(C11)
Selekcjagenerycznajestwyrażeniempierwotnym,którewybierawyrażeniezlistywzależ-
nościodtypuinnegowyrażenia.Selekcjamamiejscepodczaskompilacji.Tenmechanizm
pozwalaprogramistomCnapisaniemakrgenerycznych,takichjaktedostępnewna-
główkutgmath.h,któreobsługująfunkcjematematyczneizostaływprowadzonewwersji
C99standardu.Pliktgmath.hudostępnianaprzykładsześćróżnychfunkcjiobliczających
pierwiastekkwadratowy,trzydlatypówrzeczywistychfloat,doubleilongdoubleoraz
trzydlaodpowiednikówtypówzłożonych.Wprogramiedołączającymnagłówektgmath.h
możnaużyćmakragenerycznego
sqrt(x)
doautomatycznegowywołaniatejfunkcji,
którapasujedotypux.
Zapisselekcjigenerycznejrozpoczynasięodnowegosłowakluczowego
-Generic
,
poktórymnastępująnawiasyzawierającewyrażeniekontrolneilistęasocjacji
generycznych:
-Generic(wyrażenie,asocjacjageneryczna1
[,asocjacjageneryczna2,
...])
Asocjacjagenerycznamapostać
nazwatypu:wyrażenie
72
|
Rozdział5:Wyrażeniaioperatory