y = MAX(suml, sum2);
макросын шақыру орындалса, ол
y = ((suml)>(sum2)?(suml):(sum2));
өрнегіне алмастырылады. Дөңгелек жақшалардың жазылмауы есеп-
теу реттілігіндегі қателіктерге алып келуі мүмкін, себебі препроцессор
кірістірілетін мəтінді синтаксис тұрғысынан бағаламайды. Мысалы, егер
#defi ne sqr(x) (х*х)
макросын
sqr(y+l)
өрнегі арқылы пайдаланатын
болсақ, алмастыру нəтижесінде
(y+1*y+1)
өрнегі есептеледі.
Макростар мен символдық тұрақтылар С тілінен мұраланған, С++ тілінде
программа жазу кезінде оларды қолданбаған жөн. Символдық тұрақтылар ор-
нына
const
немесе
enum
, ал макростар орнына құрамдас функцияларды не-
месе шаблондарды қолдану дұрысырақ болып саналады.
Шартты компиляция директивалары
Шартты компиляция директивалары –
Достарыңызбен бөлісу: |