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.
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
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.
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.
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. |
Š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.
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