Erinevus tekstisisese ja makro vahel

Inline vs Macro

C ++ on arvutiprogrammeerimise valdkonnas tänapäeval liiga kaugele jõudnud. Kuna tegemist on võimsa keelega, muudab see programmeerijaid vahel tohutu funktsioonikogumi tõttu pisut segaseks. Inline-funktsioon on üks neist, mida saab hõlpsasti segi ajada selles keeles asuvate makrodega.
See ei ole nii, et nende kahe vahel oleks väike erinevus, kuid need võivad nende omaduste tõttu natuke segadusse ajada. Selles artiklis käsitleme lähemalt C-siseste funktsioonide ja makrode erinevusi++.

Järjekorras
Inline-funktsioon on nagu iga teine ​​funktsioon C ++ -s ja seda nimetatakse ka tavapärasel viisil. Funktsioon, mida see täidab, on see, et see loob kompileeritud funktsiooni määratluse koopia. See tähendab, et see loob määratletud üksuste koopia kompileerimiseks. Näite võib võtta juhul, kui lisame kaks täisarvu ja nimetame seda tekstisiseseks funktsiooniks, loob kompilaator kompileeritavate täisarvude koopia.
Näide:

Inline int summa (int x, int y)

Tagasi (x + y);

Makro
C ++ makrod rakendavad teksti asendamist programmireal. See tähendab, et nad asendavad teksti vastavalt funktsioonis määratletud muutusele. Erinevalt tekstist kui funktsioonist manipuleerib makro funktsiooni abil koodi. Näiteks:
#defineeri kahekordne (X) X * X

int y = 5;
int j = kahekordne (++ y);

Siin saame väärtuse 30! Kuna helistamine on tehtud makro kaudu, on “X” asendatud ++ y-ga, mis muudab ++ y-ga korrutamiseks teise ++ y-ga. See teeb kokku 5 * 6, mis on 30, mitte 6. Kuus oleks põhiline, kuid vale vastus.

Nüüd võivad makrod siin põhjustada vea. Nii et sisemine funktsioon tuleb appi, kopeerides väärtused kompilaatorite mällu ja kompileerides selle.

Kokkuvõte:

1. Inline-funktsioon loob funktsiooni määratluse koopia.
2.Makro asendab funktsioonis määratletud ja määratletud teksti.
3. Inline-funktsiooni rakendatakse ka siis, kui makro peaks programmis vea põhjustama.