Pagkakaiba sa pagitan ng Inline at Macro sa C ++
Nilalaman
Ang Macro ay isang tagubilin na nagpapalawak sa oras ng pananakop nito. Ang mga pag-andar ay maaari ding matukoy, tulad ng macros. Katulad nito, ang mga pag-andar ng inline ay nagpapalawak din sa punto ng pananakop nito. Isang pangunahing pagkakaiba sa pagitan ng inline at macro function na ang pag-andar ng inline ay pinalawak habang pagsasama-sama, at ang macros ay pinalawak kapag ang programa ay pinoproseso ng preprocessor.
Pag-aralan natin ang pagkakaiba sa pagitan ng inline at macro sa tulong ng tsart ng paghahambing.
- Tsart ng paghahambing
- Kahulugan
- Pangunahing Pagkakaiba
- Konklusyon
Tsart ng paghahambing
Batayan para sa Paghahambing | Nasa linya | Macro |
---|---|---|
Pangunahing | Ang mga pag-andar ng inline ay naka-parse ng tagatala. | Ang Macros ay pinalawak ng preprocessor. |
Syntax | inline return_type funct_name (mga parameter) {. . . } | #define macro_name char_sequence |
Ginamit ang mga Keyword | nasa linya | #define |
Tinukoy | Maaari itong matukoy sa loob o labas ng klase. | Ito ay palaging tinukoy sa pagsisimula ng programa. |
Pagsusuri | Sinusuri nito ang argumento nang isang beses lamang. | Sinusuri nito ang argumento sa bawat oras na ginagamit ito sa code. |
Pagpapalawak | Ang tagagawa ay hindi maaaring mag-inline at palawakin ang lahat ng mga pag-andar. | Ang Macros ay palaging pinalawak. |
Pag-aautomat | Ang mga maikling pag-andar, na tinukoy sa loob ng klase ay awtomatikong ginagawa sa mga pag-andar ng inline. | Ang Macros ay dapat na tiyak na tinukoy. |
Pag-access | Ang pag-andar ng miyembro ng inline ay maaaring ma-access ang mga miyembro ng data ng klase. | Ang Macros ay hindi maaaring maging mga miyembro ng klase at hindi ma-access ang mga miyembro ng data ng klase. |
Pagwawakas | Ang kahulugan ng pag-andar ng inline ay nagtatapos sa mga kulot na braket sa dulo ng pag-andar ng inline. | Ang kahulugan ng macro ay nagtatapos sa bagong linya. |
Pag-debit | Ang pag-debug ay madali para sa isang pag-andar ng inline habang ang pagsuri ng error ay ginagawa sa panahon ng pag-iipon. | Ang pag-debug ay nagiging mahirap para sa mga macros dahil ang pagsuri ng error ay hindi nangyayari sa panahon ng pag-iipon. |
Nagbubuklod | Ang isang inline na function ay nagbubuklod ng lahat ng mga pahayag sa katawan ng pag-andar nang maayos pati na rin ang katawan ng pag-andar magsisimula at nagtatapos sa mga kulot na bracket. | Ang isang macro ay nahaharap sa problemang nagbubuklod kung mayroon itong higit sa isang pahayag, dahil wala itong simbolo ng pagtatapos. |
Kahulugan ng Inline
Ang isang pag-andar ng inline ay mukhang isang regular na pag-andar ngunit, nauna sa keyword na "nasa linya". Ang mga pag-andar ng inline ay mga maikling pag-andar ng haba na pinalawak sa punto ng pananakop nito, sa halip na tinawag. Unawain natin ang mga inline na function na may isang halimbawa.
#nagsama Sa itaas na programa, ipinahayag at tinukoy ko, ang pagpapaandar na nagsisimula (), bilang isang inline na function sa klase na "halimbawa". Ang code ng inisyal na () function ay lalawak kung saan ito ay hinihimok ng bagay ng klase "halimbawa" .Ang pagpapakita ng function (), na tinukoy sa halimbawa ng klase ay hindi ipinahayag na inline ngunit maaari itong isaalang-alang na inline ng tagatala, bilang sa C ++ ang function na tinukoy sa loob ng klase ay awtomatikong ginawa inline ng compiler na isinasaalang-alang ang haba ng pag-andar. Ang Macro ay isang "preprocessors na direktoryo". Bago ang compilation, ang programa ay sinuri ng preprocessor at kung saan nahanap nito ang macro sa programa, pinapalitan nito ang macro sa pamamagitan ng kahulugan nito. Samakatuwid, ang macro ay itinuturing na "kapalit". Pag-aralan natin ang macro na may isang halimbawa. #nagsama Sa itaas na code, ipinahayag ko ang isang macro function na GREATER (), na naghahambing at nahahanap ang mas malaking bilang ng parehong mga parameter. Maaari mong obserbahan na walang semicolon na wakasan ang macro dahil ang macro ay natatapos lamang sa pamamagitan ng bagong linya. Bilang isang macro ay isang kapalit lamang, palawakin nito ang code ng macro kung saan ito ay hinihimok. Ang mga pag-andar ng inline ay mas nakakumbinsi kaysa sa pag-andar ng macro. Nagbibigay din ang C ++ ng isang mas mahusay na paraan sa pagtukoy ng isang pare-pareho, na gumagamit ng isang "const" keyword.
Kahulugan ng Macro
Konklusyon: