Nyckelskillnad – Makro vs Inline-funktion
Ett makro är ett fragment av kod, som är ett förprocessordirektiv. En inline-funktion är en C++-förbättringsfunktion för att minimera exekveringstiden för ett program. Därför är den viktigaste skillnaden mellan Makro och Inline Function att ett makro kontrolleras av förprocessorn medan en inline-funktion kontrolleras av kompilatorn.
Ett makro ingår i början av programmet föregås av ett hash-tecken. När det finns makronamnet i programmet ersätts det med innehållet i makrot.
Vad är makro?
Förprocessorn är ett program som bearbetar källkoden innan den passerar genom kompilatorn. Den fungerar med hjälp av förprocessorns kommandorad 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örbehandlardirektiv. Förprocessordirektiven har symbolen. Till skillnad från andra påståenden slutar de inte med semikolon. En typ av förprocessordirektiv är makro. I allmänhet skrivs makron med versaler.
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. På rad 14, volym=KUBE(värde), expanderar förprocessorn satsen som volym=(värdevärdevärde). Att hitta kuben kan skrivas som en funktion, men här skrivs det med hjälp av ett makro. Om det finns en sats som volym=KUBE(x+y), kommer den att expandera till volym=(x+yx+yx+y).
Vissa programmeringstokens kan lätt vara felskrivna. De kan ersättas med hjälp av makron. t.ex. define OCH &&, define ELLER ||. En makrodefinition kan också innehålla uttryck som define AREA 45.56.
Vad är inline-funktion?
När en funktion anropas tar det lite tid för kompilatorn att köra den. Om funktionen inte är särskilt komplex kan programmeraren konvertera funktionen till en inline-funktion. Se programmet nedan.
Figur 02: Funktion utan inline
print_hello är en enkel funktion. Den skriver ut strängen "Hello" när funktionen anropas. Utförandetiden för den funktionen är 0,187s. När du använder inline-nyckelordet enligt följande, minskar exekveringstiden till 0,064s.
Figur 03: Inline-funktion
Därför, genom att använda inline-nyckelordet, minskar exekveringstiden. Inline-funktionerna kanske inte fungerar om det finns loopar, switch-satser och om funktionen innehåller statiska variabler eller rekursiva funktioner.
Vad är skillnaden mellan makro och inline-funktion?
Makro vs Inline-funktion |
|
Ett makro är ett fragment av kod, som är ett förbehandlardirektiv som ingår i början av programmet föregås av ett hash-tecken. | En inline-funktion är en C++-förbättringsfunktion för att minimera exekveringstiden för ett program. |
Utvärderingstid | |
I makrot utvärderas argumentet varje gång det används i programmet. | I inline utvärderas argumentet en gång. |
Kontrollerats av | |
Ett makro kontrolleras av förprocessorn. | En inline-funktion kontrolleras av kompilatorn. |
Sökord | |
Marco använder define. | Den infogade funktionen använder nyckelordet "inline". |
Användning | |
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 exekveringstiden för programmet. |
Uppsägning | |
Makro avslutas med den nya raden. | Inline-funktionen avslutas med det krulliga hängslet i slutet av inline-funktionen. |
Definieringspunkt | |
En Marco definieras i början av programmet. | En inline-funktion kan vara inom eller utanför klassen. |
Sammanfattning – Makro vs Inline-funktion
Den här artikeln diskuterade skillnaden mellan makro och inbyggd funktion. Dessa begrepp används i C++-programmering. Skillnaden mellan Makro och Inline Function är att ett makro kontrolleras av förprocessorn medan en inline-funktion kontrolleras av kompilatorn.