Inline ja makro ovat toimintoja, joita käytetään C++- ja C-tietokoneohjelmoinnissa. Useimmiten käytetään inline-funktiota kuin makroa. Makro on lähes aina tarpeeton C++-kielellä, koska ne ovat virhealttiita, eivätkä ne pääse käsiksi luokan yksityisiin jäseniin. Molemmat toiminnot voivat näyttää samanlaisilta, mutta eivät todellakaan ole. Molemmilla toiminnoilla on hyvät ja huonot puolensa.
Rivi vs makro
Suurin ero Inline-funktion ja makrofunktion välillä on se, että inline-funktio on lyhyt funktio, jonka kääntäjä analysoi, kun taas toisaalta esiprosessori laajentaa makroa. Inline voi todellakin käyttää luokan jäseniä, kun taas makrotoiminto ei voi käyttää luokan jäseniä.
Inline on normaali toiminto. Toiminto määritellään tekstin sisäänrakennetulla avainsanalla. Se pääsee helposti luokan jäseniin. Se parantaa toimintaa. Todellakin helppokäyttöinen. Sitä käytetään C++-tietokoneohjelmointikielessä. Useimmiten se määritellään luokan sisällä tai ulkopuolella ja päättyy kiharan aaltosulkeen symboliin.
Makro määritellään #define-avainsanalla. Sitä ei käytetä melkein koskaan C++:ssa, sitä käytetään C-kielessä enemmän. Ne ovat joustavampia, mutta ne ovat virhealttiita. Ja makro laajenee, kun esiprosessori suorittaa ohjelman käsittelyn. Makro ei voi käyttää luokan jäseniä.
Vertailutaulukko rivin ja makron välillä
Vertailuparametrit | Linjassa | Makro |
Määritelmä | Inline on normaali C++-kielessä käytetty funktio, joka määritellään avainsanalla "Inline". | Makro on funktio, jota käytetään enimmäkseen C-kielellä ja joka määritellään avainsanalla "#define". |
Luokan jäsenten pääsy | Pääsee helposti luokan jäseniin. | Ei pääse luokan jäseniin. |
Virheenkorjaus | Ohjelman virheenkorjaus onnistuu helposti. | Ohjelmaa ei voi helposti korjata. |
Missä määritellään? | Joko luokassa tai sen ulkopuolella. | Ohjelman alussa. |
Irtisanominen | Sen lopettaa symboli, kihara aaltosulje lopussa. | Se päätetään uudella rivillä symbolin sijaan. |
Mikä on Inline?
Inline on normaali toiminto, jota käytetään C++-tietokoneohjelmointikielessä. Se määritellään tekstin sisäänrakennetulla avainsanalla. Se on lyhyt funktio, jota laajennetaan kokoamalla. Inline ei ole komento, se on pikemminkin pyyntö.
Funktio voidaan määritellä joko luokan sisällä tai sen ulkopuolella. Ja se voidaan lopettaa kiharan aaltosulkeen symbolilla. Inline-funktiota käytettäessä koko inline-funktion koodi lisätään tai korvataan käännöshetkellä. Se tehdään C++-kääntäjän inline-funktiokutsussa. Lisäksi se voi helposti käyttää kaikkia luokan jäseniä.
Inline-funktion etuna on, että funktiokutsua ei tapahdu. Kun funktiota kutsutaan, se tallentaa pinoon push/pop-muuttujien ylärajan ja myös funktion paluukutsun ylärajan.
Sisäisen funktion argumentit arvioidaan vain kerran ja vaaditut muunnokset esitetään oikein. Tämä toiminto ei ole laajalti käytetty, enimmäkseen sitä käytetään C++-kielellä, mutta sitä ei vaadita kilpailevassa ohjelmoinnissa. Se on kuitenkin turvallinen ja helppokäyttöinen.
Mikä on Micro?
Ohjelmassa esikäsittelijä laajentaa makroa, joten sitä kutsutaan myös esikäsittelydirektiiviksi. Tämä toiminto määritellään avainsanalla "#define". Esiprosessori tutkii ohjelman ennen ohjelman kääntämistä. Se korvaa kaikki makrokutsut suoraan makrokoodissa makromääritelmällä. Ohje laajenee kutsuessaan käsittelyn aikana. Se on erittäin joustava.
Makroja voidaan laajentaa riippumatta siitä, että ne ovat syntaktisesti oikein. Makrolaajennusongelmista makrofunktion käännösvaihe johtaa raporttivirheisiin. Se määritellään aivan ohjelman alussa ja se voidaan lopettaa uudella rivillä. Makron etuna on, että makron argumentit arvioidaan aina, kun ohjelmassa käytetään makrofunktiota.
Makrot eivät voi käyttää luokan jäseniä, mikä on haitta. Eikä sitä voi helposti korjata. Se voi todellakin aiheuttaa sivuvaikutuksia laajennuksen vuoksi, koska syötelausekkeet kopioidaan kaikkialle, missä ne esiintyvät kuviossa. Makrotoiminto ei ole yhtä hyödyllinen kuin inline-toiminto, mutta sitä käytetään kuitenkin laajalti kilpailevassa ohjelmoinnissa. Useimmiten sitä käytetään C-ohjelmoinnissa C++:n sijaan. Se näyttää funktiokutsulta, jota se ei ole.
Tärkeimmät erot linjan ja makron välillä
Johtopäätös
Inline-toiminto on turvallisempi ja helppokäyttöisempi, joten sitä käytetään jatkuvasti C++-tietokonekieliohjelmoinnissa. Se voi käyttää kaikkia luokan jäseniä, ja se on myös helppo korjata. Vaikka sitä ei käytetä yhtä laajasti kuin makroja. Itse asiassa sitä ei käytetä kilpailevassa ohjelmoinnissa.
Makrot ovat laajalti käytössä. Sitä käytetään kontekstissa ja sitä voidaan laajentaa riippumatta siitä, että ne ovat syntaktisesti oikein. Virheenkorjaus ei ole helppoa. Ja se määritellään ohjelman alussa ja se voidaan lopettaa uudella rivillä.