Skirtumas Tarp Makrokomandos Ir Tiesioginės Funkcijos

Turinys:

Skirtumas Tarp Makrokomandos Ir Tiesioginės Funkcijos
Skirtumas Tarp Makrokomandos Ir Tiesioginės Funkcijos

Video: Skirtumas Tarp Makrokomandos Ir Tiesioginės Funkcijos

Video: Skirtumas Tarp Makrokomandos Ir Tiesioginės Funkcijos
Video: программирование в Эксель 2024, Gegužė
Anonim

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.

Skirtumas tarp makrokomandos ir tiesioginės funkcijos
Skirtumas tarp makrokomandos ir tiesioginės funkcijos

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

Skirtumas tarp makrokomandos ir tiesioginės funkcijos 2 pav
Skirtumas tarp makrokomandos ir tiesioginės funkcijos 2 pav

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.

Pagrindinis makrokomandos ir įterptosios funkcijos skirtumas
Pagrindinis makrokomandos ir įterptosios funkcijos skirtumas

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.

Rekomenduojama: