Негизги айырмасы – Макро менен Inline Функциясы
Макрос – бул алдын ала процессордун директивасы болгон коддун фрагменти. Inline функциясы - бул программанын аткарылуу убактысын азайтуу үчүн C++ өркүндөтүү өзгөчөлүгү. Демек, Макро менен Inline Функциянын ортосундагы негизги айырма, макросту препроцессор текшерет, ал эми inline функция компилятор тарабынан текшерилет.
Макро программанын башында хэш белгиси менен коштолот. Программада макростун аталышы болгондо, ал макростун мазмунуна алмаштырылат.
Макро деген эмне?
Препроцессор - бул компилятордон өткөнгө чейин баштапкы кодду иштеткен программа. Ал препроцессордун буйрук сабын же директиваларды колдонуу менен иштейт. Программада препроцессордун директивалары негизги программанын алдында баштапкы программага жайгаштырылат. Булак коду компилятордон өткөнгө чейин, ал препроцессор тарабынан препроцессордун директивалары үчүн текшерилет. Препроцессордун директиваларысимволуна ээ. Башка билдирүүлөрдөн айырмаланып, алар чекиттүү үтүр менен бүтпөйт. Препроцессордук директиванын бир түрү макро. Негизинен, макростор баш тамгалар менен жазылат.
01-сүрөт: Макрос менен C++ программасы
Жогорудагы программага ылайык, 3-сап жана 4-сап макросторду көрсөтөт. Аянтты эсептөөдө PI мааниси аныкталган макросту колдонуу менен алмаштырылат. 14-сапта көлөм=CUBE(маани), препроцессор билдирүүнү көлөм=(маанимаанимаани) катары кеңейтет. Кубду табуу функция катары жазылышы мүмкүн, бирок бул жерде ал макростун жардамы менен жазылган. Эгер көлөм=CUBE(x+y) деген билдирүү болсо, анда ал көлөмгө чейин кеңейет=(x+yx+yx+y).
Кээ бир программалоо белгилери оңой эле туура эмес терилип калышы мүмкүн. Алар макростордун жардамы менен алмаштырылышы мүмкүн. мис. define AND &&, define OR ||. Макро аныктама define AREA 45.56 сыяктуу туюнтмаларды да камтышы мүмкүн.
Inline функция деген эмне?
Функция чакырылганда, компилятор аны аткарууга бир аз убакытты талап кылат. Эгерде функция өтө татаал болбосо, программист функцияны ички функцияга айландыра алат. Төмөнкү программаны караңыз.
02-сүрөт: Inline жок функция
Басып чыгаруу_саламы жөнөкөй функция. Функция чакырылганда "Салам" сабын басып чыгарат. Бул функцияны аткаруу убактысы 0,187сек. Саналуу ачкыч сөздү төмөнкүдөй колдонгондо, аткаруу убактысы 0,064 секундага чейин кыскарат.
03-сүрөт: Inline-функция
Ошондуктан, саптагы ачкыч сөздү колдонуу менен аткаруу убактысы кыскарат. Эгер циклдер, которуштуруу операторлору жана функция статикалык өзгөрмөлөрдү же рекурсивдүү функцияларды камтыса, саптык функциялар иштебей калышы мүмкүн.
Макро жана Inline функциясынын ортосунда кандай айырма бар?
Макро жана Inline Function |
|
Макрос – бул коддун фрагменти, ал программанын башында хэш белгиси менен камтылган препроцессордун директивасы. | Саптык функция - бул программанын аткарылуу убактысын азайтуу үчүн C++ өркүндөтүү өзгөчөлүгү. |
Баалоо убактысы | |
Макродо аргумент программада колдонулган сайын бааланат. | Сатып ичинде аргумент бир жолу бааланат. |
Текшерилген | |
Макро препроцессор тарабынан текшерилет. | Саптык функция компилятор тарабынан текшерилет. |
Ачкычтуу сүйлөм | |
Марко define колдонот. | Inline функциясы 'inline' ачкыч сөзүн колдонот. |
Колдонуу | |
Макро константаларды, туюнтмаларды аныктоо, түз текст алмаштыруу жана функцияларды аныктоо үчүн колдонулушу мүмкүн. | Программанын аткарылуу убактысын азайтуу үчүн саптык функцияны колдонсо болот. |
Токтотуу | |
Макро жаңы сап менен аяктайт. | Inline функциясы саптык функциянын аягындагы тармал кашаа менен аяктайт. |
Аныктоо пункту | |
Марко программанын башында аныкталган. | Саптык функция класстын ичинде же класстын сыртында болушу мүмкүн. |
Кыскача – Макро жана Inline Function
Бул макалада Макро жана Inline Функциясынын ортосундагы айырма талкууланган. Бул түшүнүктөр C++ программалоодо колдонулат. Макро жана Inline Функциянын айырмасы макросту препроцессор текшерет, ал эми inline функция компилятор тарабынан текшерилет.