Qhov txawv ntawm Macro thiab Inline Function

Cov txheej txheem:

Qhov txawv ntawm Macro thiab Inline Function
Qhov txawv ntawm Macro thiab Inline Function

Video: Qhov txawv ntawm Macro thiab Inline Function

Video: Qhov txawv ntawm Macro thiab Inline Function
Video: dab neeg 1205 3 kwv tij cov khawv koob dab EP#23 END 2024, Hlis ntuj nqeg
Anonim

Qhov Tseem Ceeb Qhov txawv - Macro vs Inline Function

A macro yog ib feem ntawm cov lej, uas yog cov lus qhia ua ntej. Ib qho inline muaj nuj nqi yog C ++ txhim kho feature kom txo tau lub sijhawm ua tiav ntawm qhov kev zov me nyuam. Yog li ntawd, qhov sib txawv tseem ceeb ntawm Macro thiab Inline Function yog qhov macro raug tshuaj xyuas los ntawm tus txheej txheem ua ntej thaum lub inline muaj nuj nqi raug tshuaj xyuas los ntawm lub compiler.

Ib macro suav nrog thaum pib ntawm qhov program ua ntej los ntawm tus cim hash. Thaum muaj lub npe macro hauv qhov program, nws raug hloov los ntawm cov ntsiab lus ntawm macro.

Macro yog dab tsi?

Tus preprocessor yog ib qho kev pab cuam uas ua cov txheej txheem ua ntej nws dhau los ntawm lub compiler. Nws ua haujlwm siv preprocessor kab hais kom ua lossis cov lus qhia. Nyob rau hauv qhov kev pab cuam, preprocessor cov lus qhia tau muab tso rau hauv qhov kev pab cuam ua ntej lub ntsiab qhov kev pab cuam. Ua ntej lub hauv paus chaws mus los ntawm lub compiler, nws raug tshuaj xyuas los ntawm preprocessor rau preprocessor cov lus qhia. Cov lus qhia preprocessor muaj lub cim. Tsis zoo li lwm cov nqe lus, lawv tsis xaus nrog lub semicolon. Ib hom kev qhia preprocessor yog macro. Feem ntau, cov macro tau sau ua ntawv loj.

Qhov txawv ntawm Macro thiab Inline Function
Qhov txawv ntawm Macro thiab Inline Function

Daim duab 01: C ++ Program nrog Macros

Raws li cov kev pab cuam saum toj no, kab 3 thiab kab 4 qhia macros. Thaum xam cov cheeb tsam, tus nqi PI hloov pauv siv cov macro uas tau hais tseg. Hauv kab 14, ntim=CUBE(tus nqi), tus txheej txheem ua ntej nthuav cov lus raws li ntim=(tus nqitus nqitus nqi). Nrhiav lub voos xwmfab tuaj yeem sau ua haujlwm, tab sis ntawm no nws yog sau siv macro. Yog tias muaj nqe lus raws li ntim=CUBE(x + y), ces nws yuav nthuav mus ntim=(x + yx + yx + y).

Qee qhov programming tokens tau yooj yim ua yuam kev. Lawv tuaj yeem hloov tau siv macros. e.g. define THIAB &&, define LOS YOG ||. Lub ntsiab lus macro kuj tuaj yeem suav nrog cov kab lus xws li define AREA 45.56.

Inline Function yog dab tsi?

Thaum lub luag haujlwm hu ua, lub compiler siv sijhawm qee lub sijhawm los ua nws. Yog tias qhov kev ua haujlwm tsis yog qhov nyuaj, tus programmer tuaj yeem hloov txoj haujlwm mus rau qhov ua haujlwm inline. Xa mus rau qhov program hauv qab no.

Qhov txawv ntawm Macro thiab Inline Function_Figure 2
Qhov txawv ntawm Macro thiab Inline Function_Figure 2

Daim duab 02: Ua haujlwm tsis muaj Inline

Print_hello yog ib txoj haujlwm yooj yim. Nws luam tawm txoj hlua "Hello" thaum lub luag haujlwm hu ua. Lub sijhawm ua tiav rau qhov haujlwm ntawd yog 0.187s. Thaum siv cov lus tseem ceeb hauv kab raws li hauv qab no, lub sijhawm ua tiav txo rau 0.064s.

Qhov tseem ceeb sib txawv ntawm Macro thiab Inline Function
Qhov tseem ceeb sib txawv ntawm Macro thiab Inline Function

Daim duab 03: Inline Function

Yog li ntawd, los ntawm kev siv lo lus tseem ceeb hauv kab, lub sijhawm ua tiav yuav txo. Cov haujlwm inline yuav tsis ua haujlwm yog tias muaj cov voj voog, hloov cov lus thiab yog tias cov haujlwm muaj cov hloov pauv zoo li qub lossis cov haujlwm rov ua dua.

Qhov txawv ntawm Macro thiab Inline Function yog dab tsi?

Macro vs Inline Function

A macro yog ib feem ntawm cov lej, uas yog cov lus qhia ua ntej uas suav nrog thaum pib ntawm qhov program ua ntej los ntawm tus cim hash. Ib qho haujlwm inline yog C ++ txhim kho qhov ua kom txo qis lub sijhawm ua tiav ntawm qhov kev zov me nyuam.
Lub Sijhawm Ntsuam Xyuas
Nyob rau hauv macro, qhov kev sib cav raug ntsuas txhua zaus nws siv hauv qhov program. Inline, qhov kev sib cav raug ntsuas ib zaug.
Checked By
Ib macro raug tshuaj xyuas los ntawm tus txheej txheem ua ntej. Ib qho kev ua haujlwm hauv kab yog kuaj los ntawm tus sau.
lo lus tseem ceeb
Marco siv define. Kev ua haujlwm inline siv lo lus tseem ceeb 'inline'.
Macro tuaj yeem siv los txhais qhov tsis tu ncua, kab lus, rau kev hloov cov ntawv nyeem thiab txhais cov haujlwm thiab lwm yam. Ib qho haujlwm inline tuaj yeem siv los txo lub sijhawm ua tiav ntawm qhov program.
Kev txiav txim
Macro xaus nrog txoj kab tshiab. Inline muaj nuj nqi xaus nrog curly brace ntawm qhov kawg ntawm inline muaj nuj nqi.
Defining Point
A Marco tau txhais thaum pib ntawm txoj haujlwm. Ib qho kev ua haujlwm hauv kab tuaj yeem nyob sab hauv lossis sab nraud hauv chav kawm.

Summary – Macro vs Inline Function

Kab lus no tau tham txog qhov sib txawv ntawm Macro thiab Inline Function. Cov ntsiab lus no yog siv hauv C ++ programming. Qhov txawv ntawm Macro thiab Inline Function yog qhov macro raug kuaj xyuas los ntawm tus txheej txheem ua ntej thaum lub inline muaj nuj nqi raug tshuaj xyuas los ntawm compiler.

Pom zoo: