Galvenā atšķirība - makro un iekļautā funkcija
Makro ir koda fragments, kas ir priekšprocesora direktīva. Iekļautā funkcija ir C++ uzlabošanas līdzeklis, lai samazinātu programmas izpildes laiku. Tāpēc galvenā atšķirība starp makro un iekļauto funkciju ir tāda, ka makro pārbauda priekšprocesors, bet iekļauto funkciju pārbauda kompilators.
Programmas sākumā ir iekļauts makro, pirms kura ir jaucējzīme. Ja programmā ir makro nosaukums, tas tiek aizstāts ar makro saturu.
Kas ir makro?
Priekšprocesors ir programma, kas apstrādā avota kodu, pirms tas nonāk caur kompilatoru. Tas darbojas, izmantojot priekšapstrādātāja komandrindu vai direktīvas. Programmā priekšprocesora direktīvas tiek ievietotas avota programmā pirms galvenās programmas. Pirms avota kods iziet cauri kompilatoram, priekšapstrādātājs pārbauda, vai tam nav priekšprocesora direktīvu. Priekšapstrādātāja direktīvām ir simbols. Atšķirībā no citiem apgalvojumiem tie nebeidzas ar semikolu. Viens no priekšprocesora direktīvas veidiem ir makro. Parasti makro raksta ar lielajiem burtiem.
Attēls 01: 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 ar definēto makro. 14. rindā tilpums=CUBE(vērtība), priekšapstrādātājs paplašina priekšrakstu kā tilpums=(vērtībavērtībavērtība). Kuba atrašanu var ierakstīt kā funkciju, bet šeit tas tiek ierakstīts, izmantojot makro. Ja ir priekšraksts kā tilpums=CUBE(x+y), tas tiks izvērsts līdz tilpumam=(x+yx+yx+y).
Dažus programmēšanas marķierus var viegli ievadīt nepareizi. Tos var aizstāt, izmantojot makro. piem. define UN &&, define VAI ||. Makro definīcijā var iekļaut arī tādas izteiksmes kā define AREA 45.56.
Kas ir iekļautā funkcija?
Kad funkcija tiek izsaukta, kompilatoram ir nepieciešams zināms laiks, lai to izpildītu. Ja funkcija nav ļoti sarežģīta, programmētājs var pārveidot funkciju par iekļautu funkciju. Skatiet tālāk norādīto programmu.
Attēls 02: funkcija bez rindiņas
Print_hello ir vienkārša funkcija. Tas izdrukā virkni “Sveiki”, kad tiek izsaukta funkcija. Šīs funkcijas izpildes laiks ir 0,187 s. Izmantojot iekļauto atslēgvārdu šādi, izpildes laiks tiek samazināts līdz 0,064 s.
Attēls 03: Iekļautā funkcija
Tāpēc, izmantojot iekļauto atslēgvārdu, izpildes laiks samazinās. Iekļautās funkcijas var nedarboties, ja ir cilpas, pārslēgšanas priekšraksti un ja funkcija satur statiskus mainīgos vai rekursīvas funkcijas.
Kāda ir atšķirība starp makro un iekļauto funkciju?
Makro pret iekļauto funkciju |
|
Makro ir koda fragments, kas ir priekšprocesora direktīva, kas ir iekļauta programmas sākumā, pirms kuras ir jaucējzīme. | Iekļautā funkcija ir C++ uzlabošanas līdzeklis, 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ļautajā rindā arguments tiek novērtēts vienreiz. |
Pārbaudīja | |
Makro pārbauda priekšapstrādātājs. | Kompilators pārbauda iekļauto funkciju. |
Atslēgvārds | |
Marco izmanto define. | Iekļautā funkcija izmanto atslēgvārdu “iekļauts”. |
Lietošana | |
Makro var izmantot, lai definētu konstantes, izteiksmes, burtiski aizstātu tekstu un definētu funkcijas utt. | Var izmantot iekļauto funkciju, lai samazinātu programmas izpildes laiku. |
Izbeigšana | |
Makro beidzas ar jauno rindiņu. | Iekļautā funkcija beidzas ar cirtainu figūriekavu iekļautās funkcijas beigās. |
Definēšanas punkts | |
A Marco ir definēts programmas sākumā. | Iekļautā funkcija var būt klasē vai ārpus tās. |
Kopsavilkums - makro un iekļautā funkcija
Šajā rakstā tika apspriesta atšķirība starp makro un iekļauto funkciju. Šie jēdzieni tiek izmantoti C++ programmēšanā. Atšķirība starp makro un iekļauto funkciju ir tāda, ka makro pārbauda priekšprocesors, bet iekļauto funkciju pārbauda kompilators.