Pagrindiniai skirtumai - „Makro“ir „Įterptoji“funkcija
Makrokomanda yra kodo fragmentas, kuris yra išankstinio procesoriaus direktyva. Įterptinė funkcija yra C ++ patobulinimo funkcija, siekiant sumažinti programos vykdymo laiką. Todėl pagrindinis skirtumas tarp „Macro“ir „Inline Function“yra tas, kad makrokomandą tikrina pirminis procesorius, o inline funkciją - kompiliatorius.
Makrokomanda įtraukiama programos pradžioje, prieš ją - maišos ženklas. Kai programoje yra makrokomandos pavadinimas, jis pakeičiamas makrokomandos turiniu.
TURINYS
1. Apžvalga ir pagrindiniai skirtumai
2. Kas yra makrokomanda
3. Kas yra „Inline“funkcija
4. Palyginimas vienas šalia kito - makrokomanda ir „Inline“funkcija lentelės forma
5. Santrauka
Kas yra makrokomanda?
Išankstinis procesorius yra programa, kuri apdoroja šaltinio kodą prieš jam pereinant per kompiliatorių. Jis veikia naudodamas išankstinio procesoriaus komandinę eilutę arba direktyvas. Programoje pirminio procesoriaus nurodymai dedami į šaltinio programą prieš pagrindinę programą. Prieš pradiniam kodui pereinant per kompiliatorių, jį tikrina pirminio procesoriaus parengiamosios instrukcijos. Išankstinio procesoriaus direktyvose yra simbolis #. Skirtingai nuo kitų teiginių, jie nesibaigia kabliataškiu. Viena iš išankstinio procesoriaus direktyvų yra makro. Paprastai makrokomandos rašomos didžiosiomis raidėmis.
01 pav. C ++ programa su makrokomandomis
Pagal pirmiau pateiktą programą 3 ir 4 eilutės nurodo makrokomandas. Skaičiuojant plotą, PI reikšmė pakeičiama naudojant apibrėžtą makrokomandą. 14 eilutėje, tūris = CUBE (vertė), pirminis procesorius išplečia teiginį kaip tūris = (vertė * vertė * vertė). Kubo radimas gali būti parašytas kaip funkcija, bet čia jis parašytas naudojant makrokomandą. Jei yra sakinys, kurio tūris = KUBAS (x + y), tada jis išsiplės iki tūrio = (x + y * x + y * x + y).
Kai kurie programavimo žetonai gali būti lengvai klaidingai įvesti. Juos galima pakeisti naudojant makrokomandas. pvz., #define AND &&, #define OR ||. Makro apibrėžimas taip pat gali apimti tokias išraiškas kaip #define AREA 4 * 5.56.
Kas yra tiesioginė funkcija?
Kai iškviečiama funkcija, kompiliatorius užtrunka šiek tiek laiko ją vykdyti. Jei funkcija nėra labai sudėtinga, programuotojas gali konvertuoti funkciją į tiesioginę funkciją. Peržiūrėkite žemiau pateiktą programą.
02 pav. Funkcija be įterptosios
„Print_hello“yra paprasta funkcija. Kai funkcija iškviečiama, ji išspausdina eilutę „Labas“. Šios funkcijos vykdymo laikas yra 0,187 s. Naudojant įterptąjį raktinį žodį taip, vykdymo laikas sutrumpėja iki 0,064 s.
03 pav. Įterptinė funkcija
Todėl, naudojant vidinį raktinį žodį, vykdymo laikas sutrumpėja. Įterptosios funkcijos gali neveikti, jei yra kilpų, jungiklių sakinių ir jei funkcijoje yra statinių kintamųjų ar rekursinių funkcijų.
Koks skirtumas tarp makrokomandos ir tiesioginės funkcijos?
Skirtingas straipsnis viduryje prieš lentelę
Makrokomanda ir vidinė funkcija |
|
Makrokomanda yra kodo fragmentas, kuris yra parengiamojo procesoriaus direktyva, kuri įtraukiama programos pradžioje, prieš ją nurodant maišos ženklą. | Įterptinė funkcija yra C ++ patobulinimo funkcija, siekiant sumažinti programos vykdymo laiką. |
Vertinimo laikas | |
Makrokomandoje argumentas vertinamas kiekvieną kartą, kai jis naudojamas programoje. | Apibendrinant, argumentas įvertinamas vieną kartą. |
Patikrinta | |
Makrokomandą tikrina pirminis procesorius. | Kompiliatorius patikrina tiesioginę funkciją. |
Raktažodis | |
Marco naudoja # apibrėžti. | Funkcija „inline“naudoja raktinį žodį „inline“. |
Naudojimas | |
Makrokomanda gali būti naudojama konstantoms, išraiškoms apibrėžti, pažodžiui pakeisti tekstą ir apibrėžti funkcijas ir kt. | Įterptinė funkcija gali būti naudojama norint sumažinti programos vykdymo laiką. |
Nutraukimas | |
Makrokomanda baigiasi nauja eilute. | Įterpimo funkcija baigiasi garbanota petneša įterptinės funkcijos pabaigoje. |
Apibrėžiantis taškas | |
„Marco“yra apibrėžtas programos pradžioje. | Įterptinė funkcija gali būti klasės viduje arba už jos ribų. |
Santrauka - funkcija „Makro“palyginti su vidine funkcija
Šiame straipsnyje aptariamas skirtumas tarp makrokomandos ir tiesioginės funkcijos. Šios sąvokos vartojamos programuojant C ++. Skirtumas tarp „Makro“ir „Inline Function“yra tas, kad makrokomandą tikrina pirminis procesorius, o inline funkciją - kompiliatorius.