Макро жана Inline Функциянын ортосундагы айырма

Мазмуну:

Макро жана Inline Функциянын ортосундагы айырма
Макро жана Inline Функциянын ортосундагы айырма

Video: Макро жана Inline Функциянын ортосундагы айырма

Video: Макро жана Inline Функциянын ортосундагы айырма
Video: Автоматический календарь-планировщик смен в Excel 2024, Июль
Anonim

Негизги айырмасы – Макро менен Inline Функциясы

Макрос – бул алдын ала процессордун директивасы болгон коддун фрагменти. Inline функциясы - бул программанын аткарылуу убактысын азайтуу үчүн C++ өркүндөтүү өзгөчөлүгү. Демек, Макро менен Inline Функциянын ортосундагы негизги айырма, макросту препроцессор текшерет, ал эми inline функция компилятор тарабынан текшерилет.

Макро программанын башында хэш белгиси менен коштолот. Программада макростун аталышы болгондо, ал макростун мазмунуна алмаштырылат.

Макро деген эмне?

Препроцессор - бул компилятордон өткөнгө чейин баштапкы кодду иштеткен программа. Ал препроцессордун буйрук сабын же директиваларды колдонуу менен иштейт. Программада препроцессордун директивалары негизги программанын алдында баштапкы программага жайгаштырылат. Булак коду компилятордон өткөнгө чейин, ал препроцессор тарабынан препроцессордун директивалары үчүн текшерилет. Препроцессордун директиваларысимволуна ээ. Башка билдирүүлөрдөн айырмаланып, алар чекиттүү үтүр менен бүтпөйт. Препроцессордук директиванын бир түрү макро. Негизинен, макростор баш тамгалар менен жазылат.

Макро жана 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 функция деген эмне?

Функция чакырылганда, компилятор аны аткарууга бир аз убакытты талап кылат. Эгерде функция өтө татаал болбосо, программист функцияны ички функцияга айландыра алат. Төмөнкү программаны караңыз.

Макро жана Inline Функциянын ортосундагы айырма_сүрөт 2
Макро жана Inline Функциянын ортосундагы айырма_сүрөт 2

02-сүрөт: Inline жок функция

Басып чыгаруу_саламы жөнөкөй функция. Функция чакырылганда "Салам" сабын басып чыгарат. Бул функцияны аткаруу убактысы 0,187сек. Саналуу ачкыч сөздү төмөнкүдөй колдонгондо, аткаруу убактысы 0,064 секундага чейин кыскарат.

Макро жана Inline функциясынын ортосундагы негизги айырма
Макро жана Inline функциясынын ортосундагы негизги айырма

03-сүрөт: Inline-функция

Ошондуктан, саптагы ачкыч сөздү колдонуу менен аткаруу убактысы кыскарат. Эгер циклдер, которуштуруу операторлору жана функция статикалык өзгөрмөлөрдү же рекурсивдүү функцияларды камтыса, саптык функциялар иштебей калышы мүмкүн.

Макро жана Inline функциясынын ортосунда кандай айырма бар?

Макро жана Inline Function

Макрос – бул коддун фрагменти, ал программанын башында хэш белгиси менен камтылган препроцессордун директивасы. Саптык функция - бул программанын аткарылуу убактысын азайтуу үчүн C++ өркүндөтүү өзгөчөлүгү.
Баалоо убактысы
Макродо аргумент программада колдонулган сайын бааланат. Сатып ичинде аргумент бир жолу бааланат.
Текшерилген
Макро препроцессор тарабынан текшерилет. Саптык функция компилятор тарабынан текшерилет.
Ачкычтуу сүйлөм
Марко define колдонот. Inline функциясы 'inline' ачкыч сөзүн колдонот.
Колдонуу
Макро константаларды, туюнтмаларды аныктоо, түз текст алмаштыруу жана функцияларды аныктоо үчүн колдонулушу мүмкүн. Программанын аткарылуу убактысын азайтуу үчүн саптык функцияны колдонсо болот.
Токтотуу
Макро жаңы сап менен аяктайт. Inline функциясы саптык функциянын аягындагы тармал кашаа менен аяктайт.
Аныктоо пункту
Марко программанын башында аныкталган. Саптык функция класстын ичинде же класстын сыртында болушу мүмкүн.

Кыскача – Макро жана Inline Function

Бул макалада Макро жана Inline Функциясынын ортосундагы айырма талкууланган. Бул түшүнүктөр C++ программалоодо колдонулат. Макро жана Inline Функциянын айырмасы макросту препроцессор текшерет, ал эми inline функция компилятор тарабынан текшерилет.

Сунушталууда: