Skillnaden Mellan Makro Och Inline-funktion

Innehållsförteckning:

Skillnaden Mellan Makro Och Inline-funktion
Skillnaden Mellan Makro Och Inline-funktion

Video: Skillnaden Mellan Makro Och Inline-funktion

Video: Skillnaden Mellan Makro Och Inline-funktion
Video: Coyote Attacks Cat - Dog Saves Cat 2024, Maj
Anonim

Nyckelskillnad - Makro vs inbyggd funktion

Ett makro är ett kodfragment, vilket är ett förprocessordirektiv. En inline-funktion är en C ++ -förbättringsfunktion för att minimera körningstiden för ett program. Därför är nyckelskillnaden mellan makro och inline-funktion att ett makro kontrolleras av förprocessorn medan en inline-funktion kontrolleras av kompilatorn.

Ett makro ingår i början av programmet som föregås av ett hash-tecken. När det finns makronamnet i programmet ersätts det med innehållet i makrot.

INNEHÅLL

1. Översikt och nyckeldifferens

2. Vad är makro

3. Vad är inline-funktion

4. Jämförelse sida vid sida - Makro mot inline-funktion i tabellform

5. Sammanfattning

Vad är makro?

Förprocessorn är ett program som behandlar källkoden innan den passerar genom kompilatorn. Den fungerar med kommandoraden preprocessor eller direktiven. I programmet placeras förprocessordirektiven i källprogrammet före huvudprogrammet. Innan källkoden går igenom kompilatorn kontrolleras den av förprocessorn för förprocessordirektiv. Förprocessordirektiven har symbolen #. Till skillnad från andra uttalanden slutar de inte med semikolon. En typ av förprocessordirektiv är makro. I allmänhet är makron skrivna med stora bokstäver.

Skillnaden mellan makro och inline-funktion
Skillnaden mellan makro och inline-funktion

Figur 01: C ++ - program med makron

Enligt ovanstående program indikerar rad 3 och rad 4 makron. Vid beräkning av arean ersätts PI-värdet med det definierade makrot. I rad 14, volym = CUBE (värde), expanderar förprocessorn uttalandet som volym = (värde * värde * värde). Att hitta kuben kan skrivas som en funktion, men här skrivs den med ett makro. Om det finns ett uttalande som volym = CUBE (x + y) expanderar det till volym = (x + y * x + y * x + y).

Vissa programmeringstoken kan lätt skrivas fel. De kan bytas ut med makron. t.ex. #definiera OCH &&, #definiera ELLER ||. En makrodefinition kan också inkludera uttryck som #define AREA 4 * 5.56.

Vad är Inline-funktion?

När en funktion anropas tar kompilatorn lite tid att utföra den. Om funktionen inte är så komplex kan programmeraren konvertera funktionen till en inline-funktion. Se nedanstående program.

Skillnad mellan makro och inbyggd funktion Figur 2
Skillnad mellan makro och inbyggd funktion Figur 2

Figur 02: Funktion utan inline

Print_hello är en enkel funktion. Den skriver ut strängen”Hej” när funktionen anropas. Exekveringstiden för den funktionen är 0.187s. När du använder inline-nyckelordet på följande sätt minskar körningstiden till 0,064s.

Huvudskillnad mellan makro och inbyggd funktion
Huvudskillnad mellan makro och inbyggd funktion

Figur 03: Inline-funktion

Därför minskar körningstiden genom att använda det inbyggda nyckelordet. Inline-funktionerna kanske inte fungerar om det finns slingor, växlingsuttalanden och om funktionen innehåller statiska variabler eller rekursiva funktioner.

Vad är skillnaden mellan makro och inline-funktion?

Skilja artikeln mitt före bordet

Makro vs inbyggd funktion

Ett makro är ett kodfragment, vilket är ett förprocessordirektiv som ingår i början av programmet som föregås av ett hash-tecken. En inline-funktion är en C ++ -förbättringsfunktion för att minimera körningstiden för ett program.
Utvärderingstid
I makro utvärderas argumentet varje gång det används i programmet. Inline utvärderas argumentet en gång.
Kontrolleras av
Ett makro kontrolleras av förprocessorn. En inline-funktion kontrolleras av kompilatorn.
Nyckelord
Marco använder #define. Inline-funktionen använder nyckelordet 'inline'.
Användande
Makro kan användas för att definiera konstanter, uttryck, för bokstavlig textersättning och för att definiera funktioner etc. En inline-funktion kan användas för att minimera körningstiden för programmet.
Uppsägning
Makro avslutas med den nya raden. Inline-funktionen avslutas med det lockiga stödet i slutet av inline-funktionen.
Definierande punkt
En Marco definieras i början av programmet. En inline-funktion kan finnas inom eller utanför klassen.

Sammanfattning - Makro vs inbyggd funktion

Denna artikel diskuterade skillnaden mellan makro och inline-funktion. Dessa begrepp används i C ++ programmering. Skillnaden mellan makro och inline-funktion är att ett makro kontrolleras av förprocessorn medan en inline-funktion kontrolleras av kompilatorn.

Rekommenderas: