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: 13. Aggregerade efterfrågan AD [Grundkurs i nationalekonomi: Makro] 2024, November
Anonim

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.

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. 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.

Skillnaden mellan makro och inbyggd funktion_Figur 2
Skillnaden mellan makro och inbyggd funktion_Figur 2

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.

Nyckelskillnad mellan makro och inline-funktion
Nyckelskillnad mellan makro och inline-funktion

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.

Rekommenderad: