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