Makro on fragmentti koodista, joka on esikäsittelydirektiivi. Inline-toiminto on C ++ -parannusominaisuus, joka minimoi ohjelman suoritusajan. Siksi avainero Makron ja Inline-toiminnon välillä on se esiprosessori tarkistaa makron, kun taas kääntäjä tarkistaa inline-toiminnon.
Makro sisältyy ohjelman alkuun, jota edeltää hash-merkki. Kun ohjelmassa on makronimi, se korvataan makron sisällöllä.
1. Yleiskatsaus ja keskeiset erot
2. Mikä on makro
3. Mikä on rivitoiminto
4. Vertailu rinnakkain - makro vs. rivitoiminto taulukkomuodossa
5. Yhteenveto
Esiprosessori on ohjelma, joka käsittelee lähdekoodin ennen kuin se kulkee kääntäjän läpi. Se toimii esiprosessorin komentorivillä tai direktiiveillä. Ohjelmassa esikäsittelydirektiivit sijoitetaan lähdeohjelmaan ennen pääohjelmaa. Ennen kuin lähdekoodi menee kääntäjän läpi, esikäsittelijä tarkistaa sen esikäsittelydirektiivien suhteen. Esikäsittelydirektiivissä on # -merkki. Toisin kuin muut lausunnot, ne eivät lopu puolipisteellä. Yksi tyyppi esikäsittelydirektiivistä on makro. Yleensä makrot kirjoitetaan isoilla kirjaimilla.
Kuva 01: C ++ -ohjelma makroilla
Yllä olevan ohjelman mukaan rivi 3 ja rivi 4 osoittavat makroja. Pinta-alaa laskettaessa PI-arvo korvataan määritellyllä makrolla. Rivillä 14, tilavuus = CUBE (arvo), esiprosessori laajentaa lauseketta tilavuus = (arvo * arvo * arvo). Kuution löytäminen voidaan kirjoittaa funktiona, mutta tässä se kirjoitetaan makron avulla. Jos lauseessa on tilavuus = CUBE (x + y), niin se laajenee tilavuuteen = (x + y * x + y * x + y).
Jotkut ohjelmointimerkit voivat olla väärin kirjoitettuina. Ne voidaan korvata makroilla. esim. #define AND &&, #define OR ||. Makromäärittely voi sisältää myös lausekkeita, kuten #define AREA 4 * 5.56.
Kun funktiota kutsutaan, kääntäjä vie jonkin aikaa sen suorittamiseen. Jos toiminto ei ole kovin monimutkainen, ohjelmoija voi muuntaa toiminnon rivitoimintoksi. Katso alla olevaa ohjelmaa.
Kuva 02: Toiminto ilman rivinvaihtoa
Print_hello on yksinkertainen toiminto. Se tulostaa merkkijono “Hei”, kun toimintoa kutsutaan. Tämän toiminnon suoritusaika on 0,187 s. Kun käytät sisäistä avainsanaa seuraavasti, suoritusaika lyhenee 0,064 sekunniksi.
Kuva 03: Sisäinen toiminto
Siksi, käyttämällä sisäistä avainsanaa, suoritusaika lyhenee. Sisäiset toiminnot eivät ehkä toimi, jos silmukoita, kytkinlausekkeita on ja jos funktio sisältää staattisia muuttujia tai rekursiivisia toimintoja.
Makro vs. rivitoiminto | |
Makro on fragmentti koodista, joka on esikäsittelydirektiivi, joka sisältyy ohjelman alkuun, jota edeltää hash-merkki. | Inline-toiminto on C ++ -parannusominaisuus, joka minimoi ohjelman suoritusajan. |
arviointi Time | |
Makrossa argumentti arvioidaan joka kerta, kun sitä käytetään ohjelmassa. | Inline: ssä väitettä arvioidaan kerran. |
Tarkistanut | |
Esiprosessori tarkistaa makron. | Kääntäjä tarkistaa sisäisen toiminnon. |
avainsana | |
Marco käyttää #define. | Inline-toiminto käyttää avainsanaa 'inline'. |
Käyttö | |
Makroa voidaan käyttää vakioiden, lausekkeiden, kirjaimellisen tekstin korvaamisen ja funktioiden määrittelemiseen jne. | Inline-toimintoa voidaan käyttää minimoimaan ohjelman suoritusaika. |
päättyminen | |
Makro päättyy uudella rivillä. | Inline-toiminto päättyy kihara-aukolla inline-toiminnon lopussa. |
Määrittelevä kohta | |
Marco määritetään ohjelman alussa. | Inline-toiminto voi olla luokan sisällä tai ulkopuolella. |
Tässä artikkelissa käsiteltiin eroa makro- ja rivitoimintojen välillä. Näitä käsitteitä käytetään C ++ -ohjelmoinnissa. Ero makro- ja rivitoimintojen välillä on se, että esiprosessori tarkistaa makron ja kääntäjä tarkistaa rivin toiminnon.
1. ”Esikäsittelydirektiivit.” Cplusplus.com. Saatavilla täältä
2. ”C Inline -toiminnot.” Www.tutorialspoint.com, Tutorials Point, 19. maaliskuuta 2018. Saatavilla täältä