Տարբերությունը մակրո և ներդիրային ֆունկցիաների միջև

Բովանդակություն:

Տարբերությունը մակրո և ներդիրային ֆունկցիաների միջև
Տարբերությունը մակրո և ներդիրային ֆունկցիաների միջև

Video: Տարբերությունը մակրո և ներդիրային ֆունկցիաների միջև

Video: Տարբերությունը մակրո և ներդիրային ֆունկցիաների միջև
Video: Chat 🔥🔥🔥 GPT in Excel / 10X Your Excel Skills with ChatGPT 🚀 2024, Նոյեմբեր
Anonim

Հիմնական տարբերություն – Մակրո ընդդեմ ներկառուցված ֆունկցիայի

Մակրոն կոդի հատված է, որը նախապրոցեսորային հրահանգ է: Ներդիր ֆունկցիան C++-ի կատարելագործման հատկություն է՝ ծրագրի կատարման ժամանակը նվազագույնի հասցնելու համար: Հետևաբար, Macro-ի և Inline Function-ի միջև հիմնական տարբերությունն այն է, որ մակրոն ստուգվում է նախապրոցեսորի կողմից, մինչդեռ ներկառուցված ֆունկցիան ստուգվում է կոմպիլյատորի կողմից:

Մակրո ներառված է ծրագրի սկզբում, որին նախորդում է հեշ նշանը: Երբ ծրագրում կա մակրոյի անունը, այն փոխարինվում է մակրոյի բովանդակությամբ։

Ի՞նչ է մակրոն:

Նախապրոցեսորը ծրագիր է, որը մշակում է ելակետային կոդը, նախքան այն անցնելը կոմպիլյատորի միջով:Այն գործում է նախապրոցեսորի հրամանի տողի կամ հրահանգների միջոցով: Ծրագրում նախապրոցեսորային դիրեկտիվները տեղադրվում են սկզբնաղբյուր ծրագրում հիմնական ծրագրից առաջ։ Նախքան սկզբնական կոդը անցնելը կոմպիլյատորով, այն ստուգվում է նախապրոցեսորի կողմից նախապրոցեսորային հրահանգների համար: Նախապրոցեսորի հրահանգներն ունեննշան: Ի տարբերություն այլ հայտարարությունների, դրանք չեն ավարտվում ստորակետով։ Նախապրոցեսորային հրահանգներից մեկը մակրո է: Սովորաբար մակրոները գրվում են մեծատառերով։

Տարբերությունը մակրո և ներդիրային ֆունկցիայի միջև
Տարբերությունը մակրո և ներդիրային ֆունկցիայի միջև

Նկար 01. C++ ծրագիր մակրոներով

Ըստ վերը նշված ծրագրի, տող 3-ը և տող 4-ը ցույց են տալիս մակրոները: Տարածքը հաշվարկելիս PI արժեքը փոխարինվում է սահմանված մակրոյով: 14-րդ տողում՝ volume=CUBE (արժեք), նախապրոցեսորն ընդլայնում է հայտարարությունը՝ որպես volume=(արժեքարժեքարժեք):Խորանարդը գտնելը կարող է գրվել որպես ֆունկցիա, բայց այստեղ այն գրվում է մակրոյով: Եթե կա հայտարարություն որպես ծավալ=CUBE(x+y), ապա այն կընդլայնվի մինչև ծավալը=(x+yx+yx+y):

Ծրագրավորման որոշ նշաններ կարող են հեշտությամբ սխալ մուտքագրվել: Նրանք կարող են փոխարինվել մակրոների միջոցով: օր. սահմանել ԵՎ &&, սահմանել ԿԱՄ ||. Մակրո սահմանումը կարող է ներառել նաև այնպիսի արտահայտություններ, ինչպիսիք են define AREA 45.56.

Ի՞նչ է Inline ֆունկցիան:

Երբ ֆունկցիան կանչվում է, կոմպիլյատորը որոշ ժամանակ է պահանջում այն գործարկելու համար: Եթե ֆունկցիան այնքան էլ բարդ չէ, ծրագրավորողը կարող է ֆունկցիան վերածել ներդիրային ֆունկցիայի: Տե՛ս ստորև ներկայացված ծրագիրը։

Տարբերությունը մակրո և ներդիրային ֆունկցիայի միջև_Նկար 2
Տարբերությունը մակրո և ներդիրային ֆունկցիայի միջև_Նկար 2

Գծապատկեր 02. Գործառույթ առանց Inline

Print_hello-ը պարզ ֆունկցիա է: Այն տպում է «Բարև» տողը, երբ ֆունկցիան կանչվում է: Այդ ֆունկցիայի կատարման ժամանակը 0,187 վրկ է։ Ներկառուցված հիմնաբառը հետևյալ կերպ օգտագործելիս կատարման ժամանակը կրճատվում է մինչև 0,064 վրկ:

Հիմնական տարբերությունը մակրո և ներդիր գործառույթների միջև
Հիմնական տարբերությունը մակրո և ներդիր գործառույթների միջև

Նկար 03. Ներդիր ֆունկցիա

Հետևաբար, օգտագործելով ներկառուցված հիմնաբառը, կատարման ժամանակը նվազում է։ Ներքին գործառույթները կարող են չաշխատել, եթե կան հանգույցներ, անջատիչ հայտարարություններ և եթե ֆունկցիան պարունակում է ստատիկ փոփոխականներ կամ ռեկուրսիվ ֆունկցիաներ:

Ո՞րն է տարբերությունը մակրո և ներդիրային ֆունկցիաների միջև:

Մակրո ընդդեմ ներկառուցված ֆունկցիայի

Մակրոն կոդի հատված է, որը նախապրոցեսորային հրահանգ է, որը ներառված է ծրագրի սկզբում, որին նախորդում է հեշ նշանը: Inline ֆունկցիան C++-ի կատարելագործման հատկություն է՝ ծրագրի կատարման ժամանակը նվազագույնի հասցնելու համար:
Գնահատման ժամանակը
Մակրոյում արգումենտը գնահատվում է ամեն անգամ, երբ այն օգտագործվում է ծրագրում: Ներդիրում արգումենտը գնահատվում է մեկ անգամ:
Ստուգված է
Մակրոն ստուգվում է նախապրոցեսորի կողմից: Կազմողի կողմից ստուգվում է ներկառուցված ֆունկցիան:
Հիմնաբառ
Մարկոն օգտագործում է define. Inline ֆունկցիան օգտագործում է «inline» հիմնաբառը:
Օգտագործում
Մակրոն կարող է օգտագործվել հաստատուններ, արտահայտություններ սահմանելու, բառացի տեքստի փոխարինման և գործառույթներ սահմանելու համար և այլն: Ծրագրի կատարման ժամանակը նվազագույնի հասցնելու համար կարող է օգտագործվել ներկառուցված ֆունկցիա:
Դադարեցում
Մակրոն ավարտվում է նոր տողով: Inline ֆունկցիան ավարտվում է գանգուր փակագծով ներգծային ֆունկցիայի վերջում:
Սահմանիչ կետ
A Marco սահմանվում է ծրագրի սկզբում: Ներդիր ֆունկցիան կարող է լինել դասի ներսում կամ դրսում:

Ամփոփում – Մակրո ընդդեմ ներկառուցված ֆունկցիայի

Այս հոդվածը քննարկեց մակրո և ներդիրային ֆունկցիաների միջև եղած տարբերությունը: Այս հասկացությունները օգտագործվում են C++ ծրագրավորման մեջ։ Macro-ի և Inline Function-ի միջև տարբերությունն այն է, որ մակրոն ստուգվում է նախապրոցեսորի կողմից, իսկ ներկառուցված ֆունկցիան ստուգվում է կոմպիլյատորի կողմից:

Խորհուրդ ենք տալիս: