Makro Ja Sisemise Funktsiooni Erinevus

Sisukord:

Makro Ja Sisemise Funktsiooni Erinevus
Makro Ja Sisemise Funktsiooni Erinevus

Video: Makro Ja Sisemise Funktsiooni Erinevus

Video: Makro Ja Sisemise Funktsiooni Erinevus
Video: Toyor Al Jannah - Baba Jabli Ballon 2024, Mai
Anonim

Põhierinevus - makro vs sisemine funktsioon

Makro on koodijupp, mis on eeltöötlusdirektiiv. Sisseehitatud funktsioon on C ++ täiustamisfunktsioon programmi täitmisaja minimeerimiseks. Seetõttu on peamine erinevus makro ja sisemise funktsiooni vahel see, et eelprotsessor kontrollib makrot, kompileerija aga sisemist funktsiooni.

Makro lisatakse programmi algusesse, millele eelneb räsimärk. Kui programmis on makro nimi, asendatakse see makro sisuga.

SISU

1. Ülevaade ja peamised erinevused

2. Mis on makro

3. Mis on sisemine funktsioon

4. Kõrvuti võrdlus - makro vs seesmine funktsioon tabelina

5. Kokkuvõte

Mis on makro?

Eeltöötleja on programm, mis töötleb lähtekoodi enne kompilaatori läbimist. See töötab eeltöötleja käsurea või direktiivide abil. Programmis paigutatakse eeltöötleja direktiivid lähteprogrammi enne põhiprogrammi. Enne lähtekoodi kompilaatorist läbimist kontrollib eeltöötleja seda eeltöötleja direktiivide jaoks. Eeltöötleja direktiividel on sümbol #. Erinevalt teistest väidetest ei lõpe need semikooloniga. Üks eelprotsessorite direktiivi tüüp on makro. Üldiselt kirjutatakse makrod suurtähtedega.

Makro ja sisemise funktsiooni erinevus
Makro ja sisemise funktsiooni erinevus

Joonis 01: C ++ programm makrode abil

Vastavalt ülaltoodud programmile näitavad read 3 ja 4 makrosid. Pindala arvutamisel asendatakse PI väärtus määratletud makro abil. Real 14, maht = CUBE (väärtus), laiendab eeltöötleja lauset väärtusena = (väärtus * väärtus * väärtus). Kuubi leidmise saab kirjutada funktsioonina, kuid siin on see kirjutatud makro abil. Kui avaldis on maht = CUBE (x + y), siis laieneb see väärtuseni = (x + y * x + y * x + y).

Mõned programmeerimismärgid võidakse lihtsalt valesti sisestada. Neid saab makrode abil asendada. nt #define AND &&, #define OR ||. Makrodefinitsioon võib sisaldada ka selliseid väljendeid nagu #define AREA 4 * 5.56.

Mis on seesmine funktsioon?

Funktsiooni kutsumisel võtab kompilaator selle täitmiseks aega. Kui funktsioon pole eriti keeruline, saab programmeerija funktsiooni teisendada funktsioonisiseseks. Vaadake allolevat programmi.

Erinevus makro ja sisemise funktsiooni vahel - joonis 2
Erinevus makro ja sisemise funktsiooni vahel - joonis 2

Joonis 02: funktsioon ilma sissepoole

Prindi_tere on lihtne funktsioon. Funktsiooni kutsumisel prinditakse string “Hello”. Selle funktsiooni täitmisaeg on 0,187 sekundit. Kui kasutate tekstisisest märksõna järgmiselt, väheneb täitmisaeg 0,064 sekundini.

Peamine erinevus makro ja sisemise funktsiooni vahel
Peamine erinevus makro ja sisemise funktsiooni vahel

Joonis 03: funktsioon sees

Seetõttu lüheneb tekstisisese märksõna abil täitmisaeg. Tekstisisesed funktsioonid ei pruugi töötada, kui on tsükleid, lülitilauseid ja funktsioon sisaldab staatilisi muutujaid või rekursiivseid funktsioone.

Mis vahe on makro ja sisemise funktsiooni vahel?

Erinev artikkel keskel enne tabelit

Makro vs seesmine funktsioon

Makro on koodijupp, mis on eeltöötlusdirektiiv, mis sisaldub programmi alguses, millele eelneb räsimärk. Sisseehitatud funktsioon on C ++ täiustamisfunktsioon programmi täitmisaja minimeerimiseks.
Hindamisaeg
Makros hinnatakse argumenti iga kord, kui seda programmis kasutatakse. Ridavalt hinnatakse argumenti üks kord.
Kontrollitud
Eeltöötleja kontrollib makrot. Koostaja kontrollib tekstisisest funktsiooni.
Märksõna
Marco kasutab #define. Funktsioon tekstisisene kasutab märksõna 'inline'.
Kasutamine
Makrot saab kasutada konstantide, avaldiste, sõna otseses mõttes teksti asendamiseks ja funktsioonide jne määratlemiseks. Programmi käivitamisaja minimeerimiseks saab kasutada sisemist funktsiooni.
Lõpetamine
Makro lõpeb uue reaga. Funktsioon Inline lõpeb sisemise funktsiooni lõpus oleva lokkisulguriga.
Määratluspunkt
Marco on määratletud programmi alguses. Sisseehitatud funktsioon võib olla nii klassi sees kui ka väljaspool seda.

Kokkuvõte - funktsioon Makro vs seesmine funktsioon

Selles artiklis käsitleti makro ja sisemise funktsiooni erinevust. Neid mõisteid kasutatakse C ++ programmeerimisel. Makro ja tekstisisese funktsiooni erinevus seisneb selles, et makrot kontrollib eeltöötleja, sisemist funktsiooni kontrollib kompilaator.

Soovitatav: