Galvenā atšķirība - funkcija Makro vs Iekļautā funkcija
Makro ir koda fragments, kas ir priekšapstrādes direktīva. 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āda, ka makro pārbauda priekšapstrādes procesors, savukārt inline funkciju pārbauda kompilators.
Makro ir iekļauts programmas sākumā, pirms tā ir jaukšanas zīme. Ja programmā ir makro nosaukums, to aizstāj ar makro saturu.
SATURS
1. Pārskats un taustiņu atšķirība
2. Kas ir makro
3. Kas ir iekšējā funkcija
4. Blakus salīdzinājums - Makro pret iekšējo funkciju tabulas formā
5. Kopsavilkums
Kas ir makro?
Priekšapstrādātājs ir programma, kas apstrādā avota kodu, pirms tas iziet cauri kompilatoram. Tas darbojas, izmantojot priekšapstrādes komandrindu vai direktīvas. Programmā pirmapstrādātāja direktīvas tiek ievietotas avota programmā pirms galvenās programmas. Pirms pirmkods iet caur kompilatoru, pirmsprocesors to pārbauda pirmsprocesora direktīvām. Priekšapstrādātāja direktīvām ir simbols #. Atšķirībā no citiem izteikumiem tie nebeidzas ar semikolu. Viens no priekšprocesoru direktīvu veidiem ir makro. Parasti makro tiek rakstīts ar lielo burtu.
01. attēls: C ++ programma ar makro
Saskaņā ar iepriekš minēto programmu 3. un 4. rindiņa norāda makro. Aprēķinot laukumu, PI vērtība tiek aizstāta, izmantojot definēto makro. 14. rindā tilpums = CUBE (vērtība) priekšapstrādātājs izvērš paziņojumu kā tilpums = (vērtība * vērtība * vērtība). Kubu atrašanu var ierakstīt kā funkciju, bet šeit tas tiek rakstīts, izmantojot makro. Ja ir paziņojums kā tilpums = KUBS (x + y), tad tas tiks paplašināts līdz apjomam = (x + y * x + y * x + y).
Dažus programmēšanas marķierus var viegli kļūdaini ievadīt. Tos var aizstāt, izmantojot makro. piem., #define AND &&, #define OR ||. Makro definīcija var ietvert arī tādas izteiksmes kā #define AREA 4 * 5.56.
Kas ir iekšējā funkcija?
Kad funkcija tiek izsaukta, kompilatoram ir vajadzīgs 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 ievietošanas
Print_hello ir vienkārša funkcija. Kad funkcija tiek izsaukta, tā izdrukā virkni “Hello”. Šīs funkcijas izpildes laiks ir 0,187 sekundes. Izmantojot sekojošo atslēgvārdu šādi, izpildes laiks tiek samazināts līdz 0,064 sekundēm.
03. attēls: Iekšējā funkcija
Tāpēc, izmantojot iekļauto atslēgvārdu, izpildes laiks samazinās. Iekļautās funkcijas var nedarboties, ja ir cilpas, komutatoru paziņojumi un ja funkcija satur statiskos mainīgos vai rekursīvās funkcijas.
Kāda ir atšķirība starp makro un iekšējo funkciju?
Atšķirīgs raksts vidū pirms tabulas
Makro pret iekšējo funkciju |
|
Makro ir koda fragments, kas ir priekšapstrādes direktīva, kas ir iekļauta programmas sākumā, pirms tās ir jaukšanas zīme. | Iekļautā funkcija ir C ++ uzlabošanas funkcija, lai samazinātu programmas izpildes laiku. |
Novērtēšanas laiks | |
Makro argumentu novērtē katru reizi, kad tas tiek izmantots programmā. | Rindā arguments tiek novērtēts vienu reizi. |
Pārbaudījis | |
Makro pārbauda pirmapstrādes procesors. | Kompilators pārbauda iekļauto funkciju. |
Atslēgvārds | |
Marko izmanto #define. | Funkcija inline izmanto atslēgvārdu “inline”. |
Lietošana | |
Makro var izmantot, lai definētu konstantes, izteicienus, burtiskā teksta aizstāšanai un funkciju utt. | Iekšējo funkciju var izmantot, lai samazinātu programmas izpildes laiku. |
Izbeigšana | |
Makro beidzas ar jauno līniju. | Iekļaušanas funkcija beidzas ar cirtaino stiprinājumu līnijas funkcijas beigās. |
Definējošais punkts | |
Marco ir definēts programmas sākumā. | Iekļautā funkcija var būt klasē vai ārpus tās. |
Kopsavilkums - Makro pret iekšējo funkciju
Šajā rakstā tika apspriesta atšķirība starp makro un iekšējo 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šapstrādes procesors, savukārt inline funkciju pārbauda kompilators.