Tärkein ero - Makro vs Sisäinen toiminto
Makro on fragmentti koodista, joka on esikäsittelydirektiivi. Sisäinen toiminto on C ++ -parannustoiminto, joka minimoi ohjelman suoritusajan. Siksi keskeinen ero makron ja sisäisen toiminnon välillä on se, että esiprosessori tarkistaa makron ja kääntäjä tarkistaa sisäisen toiminnon.
Makro sisältyy ohjelman alkuun, jota edeltää hash-merkki. Kun ohjelmassa on makron nimi, se korvataan makron sisällöllä.
SISÄLLYS
1. Esittely ja keskeinen ero
2. Mikä on Macro
3. Mikä on Inline Function
4. Vierekkäin vertailu - Macro vs Inline Tehtävä taulukkomuodossa
5. Yhteenveto
Mikä on makro?
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 kulkee kääntäjän läpi, esiprosessori tarkistaa sen esikäsittelydirektiivejä varten. Esiprosessorin ohjeissa on symboli #. Toisin kuin muut lauseet, ne eivät pääty puolipisteeseen. Yksi esiprosessoridirektiivin tyyppi on makro. Yleensä makrot kirjoitetaan isoilla kirjaimilla.
Kuva 01: C ++ -ohjelma makrojen kanssa
Yllä olevan ohjelman mukaan rivit 3 ja 4 osoittavat makroja. Pinta-alaa laskettaessa PI-arvo korvataan määritetyllä makrolla. Rivillä 14, tilavuus = KUUTI (arvo), esiprosessori laajentaa käskyä tilavuudeksi = (arvo * arvo * arvo). Kuution löytäminen voidaan kirjoittaa funktiona, mutta tässä se kirjoitetaan makrolla. Jos lause on tilavuus = CUBE (x + y), se laajenee tilavuuteen = (x + y * x + y * x + y).
Jotkut ohjelmointitunnukset voidaan helposti kirjoittaa väärin. Ne voidaan korvata makroilla. esim. #define AND &&, #define OR ||. Makromääritelmä voi sisältää myös lausekkeita, kuten #define AREA 4 * 5.56.
Mikä on Inline-toiminto?
Kun funktiota kutsutaan, kääntäjä vie jonkin aikaa sen suorittamiseen. Jos toiminto ei ole kovin monimutkainen, ohjelmoija voi muuntaa toiminnon sisäiseksi toiminnoksi. Katso alla oleva ohjelma.
Kuva 02: Toiminto ilman inline-toimintoa
Print_hello on yksinkertainen toiminto. Se tulostaa merkkijonon "Hello", kun toimintoa kutsutaan. Kyseisen toiminnon suoritusaika on 0,187 s. Kun käytetään sisäistä avainsanaa seuraavasti, suoritusaika lyhenee 0,064 sekuntiin.
Kuva 03: Sisäinen toiminto
Siksi suoran avainsanan avulla suoritusaika lyhenee. Rivitoiminnot eivät välttämättä toimi, jos silmukoita, kytkinlausekkeita on ja jos funktio sisältää staattisia muuttujia tai rekursiivisia funktioita.
Mikä on ero makron ja sisäisen toiminnon välillä?
Erilainen artikkeli keskellä taulukkoa
Makro vs sisäinen toiminto |
|
Makro on fragmentti koodia, joka on esikäsittelydirektiivi, joka sisältyy ohjelman alkuun, jota edeltää hash-merkki. | Sisäinen toiminto on C ++ -parannustoiminto, joka minimoi ohjelman suoritusajan. |
Arviointiaika | |
Makrossa argumentti arvioidaan aina, kun sitä käytetään ohjelmassa. | Lausunnossa argumentti 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 toimintojen jne. Määrittelemiseen. | Sisäistä toimintoa voidaan käyttää minimoimaan ohjelman suoritusaika. |
Irtisanominen | |
Makro päättyy uudella rivillä. | Inline-toiminto päättyy kiharalla aaltosuulakkeella inline-toiminnon lopussa. |
Määrittelypiste | |
Marco määritetään ohjelman alussa. | Sisäinen toiminto voi olla luokan sisällä tai ulkopuolella. |
Yhteenveto - Makro vs Sisäinen toiminto
Tässä artikkelissa käsiteltiin makron ja sisäisen toiminnon välistä eroa. Näitä käsitteitä käytetään C ++ - ohjelmoinnissa. Makro- ja sisäisen toiminnon ero on siinä, että esiprosessori tarkistaa makron ja kääntäjä tarkistaa sisäisen toiminnon.