Atšķirība Starp Makro Un Iekšējo Funkciju

Satura rādītājs:

Atšķirība Starp Makro Un Iekšējo Funkciju
Atšķirība Starp Makro Un Iekšējo Funkciju

Video: Atšķirība Starp Makro Un Iekšējo Funkciju

Video: Atšķirība Starp Makro Un Iekšējo Funkciju
Video: Writing 2D Games in C using SDL by Thomas Lively 2024, Maijs
Anonim

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.

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

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.

Atšķirība starp makro un iekšējo funkciju 2. attēls
Atšķirība starp makro un iekšējo funkciju 2. attēls

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.

Galvenā atšķirība starp makro un iekšējo funkciju
Galvenā atšķirība starp makro un iekšējo funkciju

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.

Ieteicams: