Atšķirība starp makro un iekšējo funkciju

Galvenā atšķirība - Macro vs Inline Funkcija
 

Makro ir koda fragments, kas ir direktīva pirms procesora. Iekļautā funkcija ir C ++ uzlabošanas funkcija, lai samazinātu programmas izpildes laiku. Tāpēc galvenā atšķirība starp makro un iekļauto funkciju ir tā makro pārbauda priekšprocesors, bet iekšējo funkciju pārbauda kompilators.

Programmas sākumā ir iekļauts makro, pirms kura ir hash zīme. Kad programmā ir makro nosaukums, tas tiek aizstāts ar makro saturu.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir makro
3. Kas ir iekšējā funkcija
4. Salīdzinājums blakus - makro un iekšējā funkcija tabulas formā
5. Kopsavilkums

Kas ir makro?

Priekšapstrādātājs ir programma, kas apstrādā avota kodu, pirms tas iet caur kompilatoru. Tas darbojas, izmantojot apstrādātāja komandrindu vai direktīvas. Programmā pirmprocesora direktīvas tiek ievietotas avota programmā pirms galvenās programmas. Pirms avota koda iziet cauri kompilatoram, priekšprocesors to pārbauda, ​​vai nav priekšprocesora direktīvu. Pirmprocesora direktīvām ir simbols #. Atšķirībā no citiem apgalvojumiem tie nebeidzas ar semikolu. Viens no pirmapstrādes procesa veidiem ir makro. Parasti makro tiek rakstīti ar lielajiem burtiem.

01. attēls: C ++ programma ar makro

Saskaņā ar iepriekšminēto programmu 3. un 4. rinda norāda makro. Aprēķinot laukumu, PI vērtība tiek aizstāta, izmantojot noteikto makro. 14. rindā, tilpums = CUBE (vērtība), priekšprocesors paplašina paziņojumu kā tilpums = (vērtība * vērtība * vērtība). Kuba atrašanu var uzrakstīt kā funkciju, bet šeit tas tiek uzrakstīts, izmantojot makro. Ja ir paziņojums kā tilpums = CUBE (x + y), tad tas tiks izvērsts līdz skaļumam = (x + y * x + y * x + y).

Daži programmēšanas pilnvaras var viegli tikt nepareizi ievadītas. Tos var aizstāt, izmantojot makro. piem. #definēt AND &&, #definēt VAI ||. Makrodefinīcijā var iekļaut arī tādus izteicienus kā #define AREA 4 * 5.56.

Kas ir iekšējā funkcija?

Kad tiek izsaukta funkcija, kompilatoram nepieciešams zināms laiks, lai to izpildītu. Ja funkcija nav ļoti sarežģīta, programmētājs var pārveidot funkciju par inline funkciju. Skatiet zemāk esošo programmu.

02. Attēls. Funkcija bez iebūvēta

Print_hello ir vienkārša funkcija. Kad tiek izsaukta funkcija, tā izdrukā virkni “Sveiki”. Šīs funkcijas izpildes laiks ir 0,187 s. Izmantojot iekšējo atslēgvārdu, izpildes laiks tiek samazināts līdz 0,064 s.

03. attēls. Iekšējā funkcija

Tāpēc, izmantojot iekļauto atslēgvārdu, izpildes laiks tiek samazināts. Iekļautās funkcijas var nedarboties, ja ir cilpas, komutācijas paziņojumi un ja funkcija satur statiskus mainīgos vai rekursīvas funkcijas.

Kāda ir atšķirība starp makro un iekšējo funkciju?

Makro un iekšējā funkcija

Makro ir koda fragments, kas ir priekšapstrādātāja direktīva un kas ir iekļauta programmas sākumā, kurai seko hash zīme. Iekļautā funkcija ir C ++ uzlabošanas funkcija, lai samazinātu programmas izpildes laiku.
Novērtēšanas laiks
Makro gadījumā arguments tiek novērtēts katru reizi, kad tas tiek izmantots programmā. Iekšēji arguments tiek novērtēts vienreiz.
Pārbaudīja
Pirmprocesors pārbauda makro. Iekšējo funkciju pārbauda kompilators.
 Atslēgvārds
Marco izmanto #define. Iekļautā funkcija izmanto atslēgvārdu “iekļauta”.
Lietošana
Makro var izmantot, lai definētu konstantes, izteiksmes, burtiska teksta aizstāšanai un funkciju definēšanai utt. Iekšēju funkciju var izmantot, lai samazinātu programmas izpildes laiku.
Izbeigšana
Makro beidzas ar jauno līniju. Inline funkcija beidzas ar cirtainu lenci inline funkcijas beigās.
Definēšanas punkts
Marco ir definēts programmas sākumā. Iekļauta funkcija var būt gan klasē, gan ārpus tās.

Kopsavilkums - cro vs Inline Funkcija

Šajā rakstā tika apskatīta atšķirība starp makro un iekšējo funkciju. Šīs koncepcijas tiek izmantotas C ++ programmēšanā. Atšķirība starp makro un iekšējo funkciju ir tāda, ka makro makro pārbauda priekšprocesors, bet inline funkciju pārbauda kompilators.

Atsauce:

1. “Priekšapstrādātāju direktīvas.” Cplusplus.com. Pieejams šeit 
2. “C līnijas funkcijas”. Www.tutorialspoint.com, konsultāciju punkts, 2018. gada 19. marts. Pieejams šeit