Inline at Macro

Anonim

Inline vs Macro

Ang C ++ ay napunta na masyadong malayo sa larangan ng programming computer sa mga araw na ito. Ang pagiging isang malakas na wika, kung minsan ay nakakakuha ng isang maliit na bit nakalilito sa mga programmer dahil sa kanyang malaking library ng mga pag-andar. Ang inline function ay isa sa mga ito na madaling malito sa macros sa wika. Ito ay hindi na may isang menor de edad pagkakaiba sa pagitan ng dalawa, ngunit maaari silang maging isang bit ng nakalilito dahil sa mga katangian na hawak nila. Sa artikulong ito, tatalakayin namin ang higit pa tungkol sa mga pagkakaiba sa pagitan ng inline na function at mga macro sa C + +.

Nasa linya Ang isang inline function ay tulad ng anumang iba pang mga function sa C + + at tinatawag din sa regular na paraan. Ang pag-andar na ginagawa nito ay na lumilikha ito ng isang kopya ng kahulugan ng naipon na pag-andar. Iyon ay, lumilikha ito ng isang kopya ng tinukoy na mga item upang ipunin. Ang isang halimbawa ay maaaring gawin kung nagdadagdag kami ng anumang dalawang integers at tinatawag itong inline function, ang tagatala ay lilikha ng isang kopya ng mga integer na maipon. Halimbawa:

Inline int sum (int x, int y) { Bumalik (x + y); }

Macro Macros sa C ++ ipatupad ang pagpapalit ng teksto sa isang linya ng programa. Iyon ay, palitan nila ang teksto ayon sa pagbabago na tinukoy sa pag-andar. Hindi tulad ng inline bilang isang function, isang macro manipulates ang code gamit ang isang function. Halimbawa: #define DOUBLE (X) X * X

int y = 5; int j = DOUBLE (++ y);

Dito, makakakuha tayo ng halaga bilang 30! Tulad ng pagtawag ay ginawa sa pamamagitan ng isang macro, "X" ay pinalitan ng ++ y na gumagawa ng + + y na i-multiply ng isa pa ++ y. Ito ay gumagawa ng isang kabuuang 5 * 6 na hindi 30 6. Anim ay ang pangunahing ngunit isang maling sagot.

Ngayon, ang macros ay maaaring maging sanhi ng isang bug dito. Kaya ang isang inline function na lumapit sa pagliligtas sa pamamagitan ng pagkopya ng mga halaga sa memory compiler 'at pagkatapos ay kino-compile ito.

Buod:

1.Ang function ng inline ay lumilikha ng isang kopya ng kahulugan ng pag-andar. 2.Ang macro ay pumapalit sa teksto bilang tinukoy at tinukoy sa loob ng function. 3.Ang function ng inline ay inilapat din kapag ang isang macro ay dapat na maging sanhi ng isang bug sa programa.