Макро болон шугамын функцүүдийн ялгаа

Агуулгын хүснэгт:

Макро болон шугамын функцүүдийн ялгаа
Макро болон шугамын функцүүдийн ялгаа

Видео: Макро болон шугамын функцүүдийн ялгаа

Видео: Макро болон шугамын функцүүдийн ялгаа
Видео: Хүснэгтийн мөр болон баганыг солих 2024, Долдугаар сарын
Anonim

Үндсэн ялгаа – Макро ба Inline функц

Макро нь кодын фрагмент бөгөөд энэ нь урьдчилсан процессорын заавар юм. Inline функц нь программыг гүйцэтгэх хугацааг багасгахын тулд C++ сайжруулалтын функц юм. Тиймээс Макро болон 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 функц гэж юу вэ?

Функцийг дуудах үед хөрвүүлэгч үүнийг гүйцэтгэхэд хэсэг хугацаа зарцуулдаг. Хэрэв функц нь тийм ч төвөгтэй биш бол программист функцийг шугаман функц болгон хувиргаж болно. Доорх хөтөлбөрийг үзнэ үү.

Макро ба шугаман функцийн ялгаа_Зураг 2
Макро ба шугаман функцийн ялгаа_Зураг 2

Зураг 02: Inline-гүй функц

Хэвлэх_hello нь энгийн функц юм. Энэ нь функцийг дуудах үед "Сайн уу" мөрийг хэвлэдэг. Энэ функцийг гүйцэтгэх хугацаа нь 0.187 секунд байна. Inline түлхүүр үгийг дараах байдлаар ашиглах үед гүйцэтгэлийн хугацаа 0.064 секунд болж буурдаг.

Макро ба Inline функцийн хоорондох гол ялгаа
Макро ба Inline функцийн хоорондох гол ялгаа

Зураг 03: Inline функц

Тиймээс inline түлхүүр үгийг ашигласнаар гүйцэтгэлийн хугацаа багасна. Хэрэв энэ функц нь статик хувьсагч эсвэл рекурсив функц агуулж байвал гогцоо, шилжүүлгийн хэллэг байгаа бол мөрийн функцүүд ажиллахгүй байж магадгүй.

Макро болон Inline функцийн ялгаа нь юу вэ?

Макро ба Inline функц

Макро нь програмын эхэнд хэш тэмдгээр орсон байдаг урьдчилсан процессорын заавар болох кодын фрагмент юм. Inline функц нь программыг гүйцэтгэх хугацааг багасгах зорилгоор C++ сайжруулалтын функц юм.
Үнэлгээний хугацаа
Макро дээр аргументыг программд ашиглах бүрд үнэлдэг. Дотор талбарт аргументыг нэг удаа үнэлнэ.
Шалгасан
Макро урьдчилсан процессор шалгасан. Inline функцийг хөрвүүлэгч шалгадаг.
Түлхүүр үг
Марко define ашигладаг. Inline функц нь 'inline' гэсэн түлхүүр үгийг ашигладаг.
Хэрэглээ
Макро нь тогтмол, илэрхийлэл, текстийг шууд орлуулах, функцийг тодорхойлоход ашиглагдаж болно. Хөтөлбөрийн ажиллах хугацааг багасгахын тулд шугаман функцийг ашиглаж болно.
Цуцлах
Макро шинэ мөрөөр дуусгавар болно. Inline функц нь шугамын функцын төгсгөлд байгаа буржгар хаалтаар төгсдөг.
Тодорхойлох цэг
Хөтөлбөрийн эхэнд Марко тодорхойлогддог. Inline функц нь ангийн дотор болон гадна байж болно.

Хураангуй – Макро ба Inline функц

Энэ нийтлэлд Макро болон Inline функцийн ялгааг авч үзсэн. Эдгээр ойлголтуудыг C++ програмчлалд ашигладаг. Макро болон Inline функцийн ялгаа нь макрог урьдчилсан процессор шалгадаг бол мөрийн функцийг хөрвүүлэгч шалгадагт оршино.

Зөвлөмж болгож буй: