Ett makro är ett fragment av kod, vilket är ett preprocessor-direktiv. En inline-funktion är en C ++-förbättringsfunktion för att minimera körningstiden för ett program. Därför nyckelskillnad mellan makro och inline funktion är det 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 makrons innehåll.
1. Översikt och nyckelskillnad
2. Vad är makro
3. Vad är Inline Function
4. Jämförelse vid sida vid sida - Macro vs Inline-funktion i tabellform
5. Sammanfattning
Förprocessorn är ett program som behandlar källkoden innan den går igenom kompilatorn. Den arbetar med preprocessor kommandoraden eller direktiverna. I programmet placeras förbehandlingsdirektiven i källprogrammet före huvudprogrammet. Innan källkoden går igenom kompilatorn, kontrolleras den av förbehandlaren för förbehandlingsdirektiv. Förbehandlingsdirektiven har symbolen #. Till skillnad från andra uttalanden slutar de inte med en semikolon. En typ av förbehandlingsdirektiv är makro. Vanligtvis skrivs makronerna i stora bokstäver.
Figur 01: C ++ Program med makron
Enligt ovanstående program anger linje 3 och rad 4 makron. Vid beräkning av området ersätts PI-värdet med hjälp av det definierade makroet. 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 det med ett makro. Om det finns ett uttalande som volym = CUBE (x + y), kommer det att expandera till volym = (x + y * x + y * x + y).
Vissa programmeringstoken kan enkelt misslyckas. De kan bytas ut med makron. t.ex. #define OCH &&, #define ELLER ||. En makrodefinition kan också innehålla uttryck som #define AREA 4 * 5.56.
När en funktion kallas tar kompilatorn lite tid att utföra den. Om funktionen inte är väldigt komplex kan programmeraren konvertera funktionen till en inline-funktion. Se nedan programmet.
Figur 02: Funktion utan inline
Print_hello är en enkel funktion. Den skriver ut strängen "Hej" när funktionen heter. Exekveringstiden för den funktionen är 0,187s. När du använder inline-nyckelordet enligt följande, minskar körtiden till 0,064s.
Figur 03: Inline-funktion
Därför, genom att använda inline-sökordet, minskar exekveringstiden. Inline-funktionerna fungerar kanske inte om det finns loopar, omkopplingsmeddelanden och om funktionen innehåller statiska variabler eller rekursiva funktioner.
Makro vs Inline-funktion | |
Ett makro är ett fragment av kod, vilket är ett preprocessor-direktiv 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 körningstiden för ett program. |
utvärdering Time | |
I makro utvärderas argumentet varje gång det används i programmet. | I inline utvärderas argumentet en gång. |
Kontrolleras av | |
Ett makro kontrolleras av förbehandlaren. | En inline-funktion kontrolleras av kompilatorn. |
Nyckelord | |
Marco använder #define. | Inline-funktionen använder sökordet "inline". |
Användande | |
Makro kan användas för att definiera konstanter, uttryck, för textuell textbyte och för att definiera funktioner etc. | En inline-funktion kan användas för att minimera programmets körtid. |
Uppsägning | |
Makro slutar med den nya raden. | Inline-funktionen avslutas med den krökta spärren vid slutet av inline-funktionen. |
Definiera punkt | |
En Marco definieras i början av programmet. | En inline-funktion kan vara inom eller utanför klassen. |
I denna artikel diskuterades 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örbehandlaren medan en inline-funktion kontrolleras av kompilatorn.
1. "Preprocessor Directives." Cplusplus.com. Tillgänglig här
2. "C-inline-funktioner". Www.tutorialspoint.com, Tutorials Point, 19 mars 2018. Tillgänglig här