|
Æ÷ÀÎÅÍ ÀÚ·áÀÇ Ç¥Çö
|
|
- ½ÇÀμö¿Í °¡ÀμöÀÇ À̸§ÀÌ
°°°Å³ª ´Ù¸£°Å³ª °ü°è¾øÁö¸¸ °³¼ö¿Í Çü (type)Àº °°¾Æ¾ß
ÇÏ°í ½ÇÀμö¿Í °¡Àμö´Â ¼ø¼´ë·Î ´ëÀÀµÈ´Ù. ½ÇÀμöÀÇ ÀڷḦ
°¡Àμö·Î ³Ñ°ÜÁÖ´Â ¹æ¹ý¿¡´Â °ªÀÚü¸¦ ³Ñ°ÜÁÖ´Â call by
valu, ÀÚ·á°¡ ±â¾ïµÈ ÁÖ¼Ò¸¦ ³Ñ°ÜÁÖ´Â call by reference,
ÀÚ·á°¡ ±â¾ïµÈ ½ÇÀμöÀÇ À̸§ ÀÚü¸¦ ³Ñ°ÜÁÖ´Â call by
nameÀÌ ÀÖ´Ù.
(1) Call by name (°ª¿¡ ÀÇÇÑ
È£Ãâ/Àü´Þ) -
½ÇÀÎÀÚÀÇ °ª ÀÚü¸¦ ºÎÇÁ·Î±×·¥¿¡°Ô Àü´ÞÇÏ´Â ¹æ½ÄÀÌ´Ù.
°¡Àμö¿¡´Â ½ÇÀÎÀÚÀÇ °ªÀÌ ±â¾ïµÇ¹Ç·Î °°Àº °ªÀÌ ÁÖ,ºÎÇÁ·Î±×·¥¿¡
¾çÂÊ¿¡ ´Ù ÀÖ´Ù. °¡ÀμöÀÇ °ªÀº ÁÖÇÁ·Î±×·¥¿¡ Àü´ÞµÇÁö
¾Ê¾Æ ºÎÇÁ·Î±×·¥¿¡¼ÀÇ ¿¬»êÀº ½ÇÀÎÀÚ °ª¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö
¾Ê±â ¶§¹®¿¡ ¸ðµâ°£ÀÇ »óÈ£ °£¼·À» ÁÙÀÏ ¼ö ÀÖ´Ù. ALGOL,
FORTRAN, C, PASCAL µîÀÇ ´ëºÎºÐÀÇ ¾ð¾î¿¡¼ Áö¿øÇϸç,
Ưº°ÇÏ°Ô ¸í½ÃÇÏÁö ¾Ê´Â ÇÑ ±âº»ÀûÀΠȣÃâ¹æ½ÄÀ¸·Î µ¿ÀÛÇÑ´Ù.
(2) Call by reference (ÂüÁ¶/ÁÖ¼Ò¿¡
ÀÇÇÑ È£Ãâ/Àü´Þ) -
Call by location µµ´Â Call by address ¶ó°íµµ ÇÏ¸ç ½ÇÀμöÀÇ
ÁÖ¼Ò°¡ °¡Àμö¿¡ Àü´ÞµÈ´Ù. °¡Àμö¿¡´Â ½ÇÀμöÀÇ ÁÖ¼Ò°¡
±â¾ïµÇ°í °ªÀº ½ÇÀμö ÇÑ °÷¿¡¸¸ ÀÖ´Ù. °á±¹ °¡Àμö³ª ½ÇÀμö´Â
°°Àº Àå¼Ò¸¦ »ç¿ëÇÏ´Â ¼ÀÀÌ´Ù. °¡Àμö¸¦ °¡Áö°í ¿¬»êÇϸé
°¡ÀμöÀÇ ÁÖ¼Ò°¡ ¿¬»êµÇ´Â °ÍÀÌ ¾Æ´Ï°í ±× ÁÖ¼ÒÀÇ ³»¿ëÀÌ
¿¬»êµÇ¹Ç·Î ¿¬»êÀÇ °á°ú´Â ½ÇÀμö¿¡ ¹Ù·Î ³ªÅ¸³´Ù.
|