C/Powszechne praktyki: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
To samo (może autor ma taki sposób pisania, ale lepiej niech przykłądy używają najpopularniejszego standardu, czyli nawias klamrowy zamykający na wysokości instrukcji) |
drobne |
||
Linia 69:
#*Źle: <code>#define kwadrat(x) (x*x)</code>
#*Dobrze: <code>#define kwadrat(x) ( (x)*(x) )</code>
#*'''Przykład:''' Załóżmy, że w programie makro kwadrat() zdefiniowane bez nawiasów zostało wywołane następująco: <code>kwadrat(a+b)</code>. Wtedy zostanie ono zamienione przez preprocesor na: <code>(a+b*a+b)</code>. Z kolejności działań wiemy, że najpierw zostanie wykonane mnożenie, więc wartość wyrażenia <code>kwadrat(a+b)</code> będzie różna od kwadratu wyrażenia <code>a+b</code>.
# Umieszczaj nawiasy dookoła całego makra, jeśli jest pojedynczym wyrażeniem. Ponownie, chroni to przed zaburzeniem kolejności działań.
#*Źle: <code>#define kwadrat(x) (x)*(x)</code>
|