Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет98/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   94   95   96   97   98   99   100   101   ...   465
Байланысты:
аибм сплюс

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


101
#if
директивасының форматы:
#if тұрақтылық_өрнек

[ #elif тұрақтылық_өрнек 
… ]
[ #elif тұрақтылық_өрнек
… ]
[ #else
… ]
#endif
#elif
директиваларының саны бірнешеу бола береді. Компиляциядан 
шығарылатын код блоктарында сипаттамалар да, атқарылатын операторлар 
да болуы мүмкін. Тақырыптық файлдың əртүрлі нұсқаларын шартты енгізу 
мысалы: 
#if VERSION == 1
#defi ne INCFILE "vers1.h"
#elif VERSION == 2
#defi ne INCFILE "vers2.h" /* тағы сол сияқты */ 


Достарыңызбен бөлісу:
1   ...   94   95   96   97   98   99   100   101   ...   465




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет