Макро және кірістірілген функция арасындағы айырмашылық

Мазмұны:

Макро және кірістірілген функция арасындағы айырмашылық
Макро және кірістірілген функция арасындағы айырмашылық

Бейне: Макро және кірістірілген функция арасындағы айырмашылық

Бейне: Макро және кірістірілген функция арасындағы айырмашылық
Бейне: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, Шілде
Anonim

Негізгі айырмашылық – макро және кірістірілген функция

Макрос - бұл препроцессор директивасы болып табылатын код фрагменті. Кірістірілген функция - бұл бағдарламаның орындалу уақытын азайту үшін C++ жақсарту мүмкіндігі. Сондықтан макрос пен кірістірілген функцияның негізгі айырмашылығы макросты препроцессор тексереді, ал кірістірілген функцияны компилятор тексереді.

Макрос бағдарламаның басында хэш белгісінің алдында қосылады. Бағдарламада макрос атауы болғанда, ол макростың мазмұнымен ауыстырылады.

Макро дегеніміз не?

Препроцессор – компилятордан өткенге дейін бастапқы кодты өңдейтін бағдарлама. Ол препроцессордың пәрмен жолы немесе директивалар арқылы жұмыс істейді. Бағдарламада препроцессорлық директивалар негізгі бағдарламаның алдында бастапқы бағдарламаға орналастырылады. Бастапқы код компилятор арқылы өтпес бұрын, оны препроцессор препроцессор директивалары үшін тексереді. Препроцессор директиваларындатаңбасы болады. Басқа мәлімдемелерден айырмашылығы олар нүктелі үтірмен аяқталмайды. Препроцессорлық директиваның бір түрі макрос болып табылады. Әдетте макростар бас әріптермен жазылады.

Макро және кірістірілген функция арасындағы айырмашылық
Макро және кірістірілген функция арасындағы айырмашылық

01-сурет: Макростары бар C++ бағдарламасы

Жоғарыдағы бағдарламаға сәйкес 3-жол және 4-жол макростарды көрсетеді. Ауданды есептеу кезінде PI мәні анықталған макрос арқылы ауыстырылады. 14-жолда көлем=CUBE(мән), препроцессор мәлімдемені көлем=(мәнмәнмән) ретінде кеңейтеді. Текшені табуды функция ретінде жазуға болады, бірақ мұнда ол макрос арқылы жазылады. Көлем=CUBE(x+y) сияқты мәлімдеме болса, ол=(x+yx+yx+y) көлемге дейін кеңейеді.

Кейбір бағдарламалау таңбалауыштары қате жазылуы мүмкін. Оларды макростар арқылы ауыстыруға болады. мысалы анықтау ЖӘНЕ &&, анықтау НЕМЕСЕ ||. Макрос анықтамасы сонымен қатар define AREA 45,56 сияқты өрнектерді қамтуы мүмкін.

Inline функциясы дегеніміз не?

Функция шақырылғанда, компилятор оны орындау үшін біраз уақыт алады. Егер функция өте күрделі болмаса, бағдарламашы функцияны кірістірілген функцияға түрлендіре алады. Төмендегі бағдарламаны қараңыз.

Макрос пен кірістірілген функцияның айырмашылығы_2-сурет
Макрос пен кірістірілген функцияның айырмашылығы_2-сурет

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

Print_hello - қарапайым функция. Функция шақырылған кезде ол «Hello» жолын басып шығарады. Бұл функцияның орындалу уақыты 0,187 с. Кірістірілген кілт сөзін келесідей пайдаланған кезде орындау уақыты 0,064 секундқа дейін қысқарады.

Макрос пен кірістірілген функцияның негізгі айырмашылығы
Макрос пен кірістірілген функцияның негізгі айырмашылығы

03-сурет: кірістірілген функция

Сондықтан, кірістірілген кілт сөзді пайдалану арқылы орындау уақыты қысқарады. Кірістірілген функциялар циклдар, коммутатор операторлары болса және функцияда статикалық айнымалылар немесе рекурсивті функциялар болса жұмыс істемеуі мүмкін.

Макро және кірістірілген функцияның айырмашылығы неде?

Макро және кірістірілген функция

Макрос – бағдарламаның басында хэш белгісі бар препроцессор директивасы болып табылатын код фрагменті. Кірістірілген функция - бұл бағдарламаның орындалу уақытын азайтуға арналған C++ жақсарту мүмкіндігі.
Бағалау уақыты
Макроста аргумент бағдарламада пайдаланылған сайын бағаланады. Кірістірілгенде аргумент бір рет бағаланады.
Тексерген
Макросты препроцессор тексереді. Кірістірілген функцияны компилятор тексереді.
Кілтсөз
Марко define пайдаланады. Inline функциясы «inline» кілт сөзін пайдаланады.
Қолдану
Макросты тұрақты мәндерді, өрнектерді анықтау, әріптік мәтінді ауыстыру және функцияларды анықтау және т.б. үшін пайдалануға болады. Бағдарламаның орындалу уақытын азайту үшін кірістірілген функцияны пайдалануға болады.
Тоқтату
Макрос жаңа жолмен аяқталады. Inline функциясы кірістірілген функцияның соңындағы бұйра жақшамен аяқталады.
Анықтау нүктесі
Марко бағдарламаның басында анықталған. Кірістірілген функция сынып ішінде немесе сыныптан тыс болуы мүмкін.

Қорытынды – макро және кірістірілген функция

Бұл мақалада макрос пен кірістірілген функцияның айырмашылығы талқыланды. Бұл ұғымдар C++ бағдарламалауда қолданылады. Макрос пен кірістірілген функцияның айырмашылығы макросты препроцессор тексереді, ал кірістірілген функцияны компилятор тексереді.

Ұсынылған: