Makrokomanda yra kodo fragmentas, kuris yra pirminio procesoriaus direktyva. „Inline“ funkcija yra „C ++“ patobulinimo funkcija, siekiant sumažinti programos vykdymo laiką. Todėl pagrindinis skirtumas tarp makro ir integruotos funkcijos yra ta makrokomandą tikrina pirminis procesorius, o kompiliatorius tikrina intarpą.
Programos pradžioje yra makrokomanda, prieš kurią pateikiamas maišos ženklas. Kai programoje yra makrokomandos pavadinimas, jis pakeičiamas makrokomandos turiniu.
1. Apžvalga ir svarbiausias skirtumas
2. Kas yra „Macro“
3. Kas yra linijinė funkcija
4. „Side by Side“ palyginimas - lentelės formos „Macro vs Inline“ funkcija
5. Santrauka
Pirminis procesorius yra programa, kuri apdoroja šaltinio kodą prieš jam einant per kompiliatorių. Jis veikia naudojant pirminio procesoriaus komandinę eilutę arba direktyvas. Programoje pirminio procesoriaus nurodymai dedami į šaltinio programą prieš pagrindinę programą. Prieš išeidamas kodą per kompiliatorių, pirminis procesorius jį patikrina, ar nėra pirminio procesoriaus direktyvų. Pirminio apdorojimo direktyvos turi # simbolį. Skirtingai nuo kitų teiginių, jie nesibaigia kabliataškiu. Viena iš pirminio procesoriaus rūšių yra makrokomanda. Paprastai makrokomandos rašomos didžiosiomis raidėmis.
01 pav. C ++ programa su makrokomandomis
Pagal aukščiau pateiktą programą 3 ir 4 eilutės nurodo makrokomandas. Skaičiuojant plotą, PI vertė pakeičiama naudojant apibrėžtą makrokomandą. 14 eilutėje tūris = CUBE (reikšmė) pirminis procesorius išplečia teiginį kaip tūris = (reikšmė * vertė * vertė). Rasti kubą galima kaip funkciją, bet čia jis parašytas naudojant makrokomandą. Jei yra teiginys kaip tūris = CUBE (x + y), tada jis išsiplės iki tūrio = (x + y * x + y * x + y).
Kai kurie programavimo žetonai gali būti lengvai suklysti. Juos galima pakeisti naudojant makrokomandas. pvz. #define AND&&, #define ARBA || Makro apibrėžimas taip pat gali apimti tokias išraiškas kaip #define AREA 4 * 5.56.
Kai funkcija iškviečiama, kompiliatoriui reikia šiek tiek laiko ją įvykdyti. Jei funkcija nėra labai sudėtinga, programuotojas gali konvertuoti funkciją į vidinę funkciją. Peržiūrėkite žemiau pateiktą programą.
02 paveikslas: Funkcija be įterpimo
„Print_hello“ yra paprasta funkcija. Kai išspausdinama funkcija, ji spausdina eilutę „Sveiki“. Šios funkcijos vykdymo laikas yra 0,187 s. Naudojant įterptą raktinį žodį taip, vykdymo laikas sutrumpėja iki 0,064 s.
03 paveikslas: „Inline“ funkcija
Todėl, naudojant įterptą raktinį žodį, vykdymo laikas sutrumpėja. Inline funkcijos gali neveikti, jei yra kilpų, jungiklių teiginių ir jei funkcijoje yra statinių kintamųjų ar rekursinių funkcijų.
Makro ir linijinė funkcija | |
Makrokomanda yra kodo fragmentas, kuris yra pirminio procesoriaus direktyva, įtraukta programos pradžioje, prieš ją pateikiant maišos ženklą.. | „Inline“ funkcija yra „C ++“ patobulinimo funkcija, siekiant sumažinti programos vykdymo laiką. |
Vertinimo laikas | |
Makrokomponente argumentas įvertinamas kiekvieną kartą, kai jis naudojamas programoje. | Inline, argumentas įvertinamas vieną kartą. |
Patikrinta | |
Makrokomandą tikrina pirminis procesorius. | Inline funkciją patikrina kompiliatorius. |
Raktažodžiai | |
Marco naudoja #define. | „Inline“ funkcija naudoja raktinį žodį „inline“. |
Naudojimas | |
Makrokomponentai gali būti naudojami konstantoms, išraiškoms apibrėžti, pažodiniam teksto pakeitimui ir funkcijoms apibrėžti. | Funkcija „inline“ gali būti naudojama siekiant sumažinti programos vykdymo laiką. |
Nutraukimas | |
Makrokomanda baigiasi nauja linija. | Inline funkcija pasibaigia garbanotu petnešomis inline funkcijos pabaigoje. |
Apibrėžimo taškas | |
Marco yra apibrėžtas programos pradžioje. | Inline funkcija gali būti klasės viduje ar už jos ribų. |
Šiame straipsnyje buvo aptartas skirtumas tarp makro ir „Inline Function“. Šios sąvokos naudojamos C ++ programavime. Skirtumas tarp makro ir integruotos funkcijos yra tas, kad makrokomandą tikrina pirminis procesorius, o įtraukiamą funkciją tikrina kompiliatorius.
1. „Pirminio perdirbėjo direktyvos“. Cplusplus.com. Galima rasti čia
2. „C Inline funkcijos“. Www.tutorialspoint.com, „Tutorials Point“, 2018 m. Kovo 19 d. Galima rasti čia