[Â÷·Ê]  [ÇÔ¼ö»öÀÎ] Wel µµ¿ò¸» ¹®¼­ [ÀÌÀü]  [´ÙÀ½]
´ëºÐ·ù: WelÀÇ ¹®¹ý(Grammar)
¼ÒºÐ·ù: »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö
»ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ÀÛ¼ºÀÏ: 2000/08/28
¼öÁ¤ÀÏ: 2002/07/05

1) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¶õ? »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(Function)´Â »ç¿ëÀÚ°¡ ÇÊ¿ä¿¡ ÀÇÇÏ¿© Á÷Á¢ ÇÔ¼ö¸¦ Á¤ÀÇÇÏ ¿© »ç¿ëÇÏ´Â °ÍÀ» ÀǹÌÇÏ¸ç ³»Àå ÇÔ¼öó·³ ÀÎÀÚ¸¦ Àü´ÞÇÒ ¼ö ÀÖ°í ÇÔ¼öÀÇ °á°ú °ªÀ» µÇµ¹·Á ¹ÞÀ» ¼ö ÀÖÀ¸¸ç ÇÔ¼ö ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â º¯¼ö·Î ÀÎÇÏ¿© ÇÔ¼ö ¿ÜºÎ ¿¡¼­ »ç¿ëµÇ´Â º¯¼ö¿¡ ¿µÇâÀ» ÁÖÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. 2) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼öÀÇ ¼±¾ð Çü½Ä) function [Çü¼±¾ð¹®] ÇÔ¼ö¸í([Çü¼±¾ð¹®] ÀÎÀÚ1, ... , [Çü¼±¾ð¹®] ÀÎÀÚN) { ¹®Àå1; . . ¹®ÀåN; [return ¿¬»ê½Ä]; } -. [ ] ¾ÈÀÇ ³»¿ëÀº »ý·« °¡´ÉÇÔÀ» ÀǹÌÇÑ´Ù. -. Çü¼±¾ð¹®: ÇÔ¼öÀÇ ÀÎÀÚ³ª °á°ú°ª¿¡ ´ëÇÑ ÀÚ·áÇü ¼±¾ð¹®À¸·Î »ý·«½Ã freeÇü À¸·Î ÁöÁ¤µÈ´Ù. -. ÇÔ¼ö¸í: º¯¼ö¸í ÀÛ¼º ±ÔÄ¢°ú °°Àº ¹æ¹ýÀÇ ¸íĪÀ» »ç¿ëÇؾßÇÏ¸ç ³»Àå ÇÔ¼ö³ª ¸í·É¾î¿Í µ¿ÀÏÇÑ ¸íĪÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. -. ÀÎÀÚ1 ºÎÅÍ ÀÎÀÚN±îÁöÀÇ ÀÎÀÚ´Â º¯¼ö¸íÀ̾î¾ß Çϸç ÇÔ¼ö¾È¿¡¼­¸¸ Åë¿ëµÇ´Â Áö¿ª º¯¼öÀÌ´Ù. 3) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ³»¿¡¼­ÀÇ º¯¼ö »ç¿ë a. ¼±¾ðÇÏÁö ¾Ê°í º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ÇØ´ç º¯¼ö¸¦ ÁÖ ÇÁ·Î±×·¥(Main program) ¿¡¼­ ÀÌ¹Ì ¼±¾ð ÇÏ¿´°Å³ª ¶Ç´Â ¼±¾ð ¾øÀÌ º¯¼ö¸¦ »ç¿ëÇÏ¿´À» °æ¿ì¿¡´Â Àüü ÇÁ·Î±×·¥¿¡¼­ Åë¿ëÀÌ µÇ´Â Àü¿ª º¯¼ö°¡ µÈ´Ù. È£ÃâÀü¿¡ ÇØ´ç º¯¼ö¸¦ ¼±¾ðÇÏÁö ¾Ê¾Ò°í ¶ÇÇÑ »ç¿ëÇÏÁö ¾Ê¾ÒÀ¸¸ç »ç¿ëÀÚ Á¤ ÀÇ ÇÔ¼ö ³»¿¡¼­ ÃÖÃÊ·Î »ç¿ëÇÒ °æ¿ì¿¡´Â ±× ÇÔ¼ö ³»¿¡¼­ Åë¿ëÀÌ µÇ´Â Áö¿ª º¯¼öÀ̸ç ÇÔ¼ö°¡ ½ÇÇàµÉ ¶§ »ý¼ºÀÌ µÇ°í ÇÔ¼ö°¡ Á¾·áµÇ¸é »ç¶óÁö°Ô µÈ´Ù. ¡Ø »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ³»¿¡¼­ º¯¼ö¸¦ ¼±¾ð ÇÏÁö ¾Ê°í »ç¿ëÇÒ °æ¿ì¿¡´Â Àü¿ª º¯¼ö ¶Ç´Â Áö¿ª º¯¼ö°¡ µÉ ¼ö Àֱ⠶§¹®¿¡ ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ÇØ´ç º¯¼öÀÇ »óȲÀ» ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. b. Çü ¼±¾ð¹®À¸·Î ¼±¾ðÈÄ º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ³»¿¡¼­¸¸ Åë¿ëÀÌ µÇ´Â Áö¿ª º¯¼ö·Î½á ÇÔ¼ö°¡ ½ÇÇàµÉ ¶§ ÇØ´ç º¯¼ö°¡ »ý¼º(È®º¸)µÇ°í ÇÔ¼ö°¡ Á¾·áµÇ¸é »ç¶óÁö°Ô µÈ´Ù. c. static À¸·Î ¼±¾ðÈÄ º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ³»¿¡¼­¸¸ Åë¿ëÀÌ µÇ´Â Áö¿ª º¯¼ö·Î½á ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¶§ º¯¼ö°¡ »ý¼º(È®º¸)µÇ¸ç ½ÇÇà½Ã ÇØ´ç º¯¼ö¸¦ È®º¸Çϰųª ÃʱâÈ­ ÇÏÁö ¾Ê´Â´Ù. ÀÌ¿Í °°Àº º¯¼ö´Â Ç×»ó ±× °ªÀ» À¯ÁöÇϸç ÇÔ¼ö ¿ÜºÎ¿¡¼­ ÂüÁ¶ÇÒ ¼ö ¾ø´Ù. d. global ·Î ÂüÁ¶ ÁöÁ¤ ÈÄ º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì ÇØ´ç º¯¼ö°¡ Àü¿ª º¯¼ö·Î ÂüÁ¶ ÁöÁ¤µÇ¾î ÇÔ¼ö ³»ÀÇ º¯¼ö°¡ ¾Æ´Ï¶ó ÇÔ¼ö ¿ÜºÎÀÇ ÁÖ ÇÁ·Î±×·¥(Main program) »óÀÇ º¯¼ö°¡ µÈ´Ù. 3) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼öÀÇ È¸±Í °ª(Return value) a. return ¹®À» »ç¿ëÇÒ °æ¿ì ÇÔ¼öÀÇ Çü(function ´ÙÀ½ÀÇ Çü ¼±¾ð¹®)°ú ´Ù¸£¸é Çü º¯È¯ÇÏ¿© ±× °ªÀ» µÇµ¹¸®¸ç, ÇÔ¼öÀÇ ÇüÀÌ »ý·«µÇ¾úÀ» °æ¿ì¿¡´Â free ÇüÀÌ µÇ¾î Çü º¯È¯À» ÇÏÁö ¾Ê´Â´Ù. b. return ¹®À» »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì ÃÖÈÄ¿¡ »ç¿ëµÈ ¹®ÀåÀÇ »ó¼ö°ªÀ» µÇµ¹¸°´Ù. ÀÌ °æ¿ì µÇµ¹·ÁÁö´Â °ªÀÌ ¹«¾ùÀÎÁö ¸íÈ®ÇÏÁö ¾ÊÀ» ¼ö Àֱ⠶§¹®¿¡ ÇÔ¼öÀÇ °á°ú°ªÀ» º¯¼ö¿¡ ´ëÀÔÇÒ °æ¿ì ÁÖÀǸ¦ ÇؾßÇÑ´Ù. 4) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼öÀÇ ¿¹#1 function int add(int a, int b) { int c; // ÀÎÀÚ a,b ¹× º¯¼ö c´Â Áö¿ªº¯¼öÀÓ c= a + b; return c; // a+bÀÇ °á°ú¸¦ µÇµ¹¸² } ad= add(3,2); // 3À» a¿¡ 2¸¦ b¿¡ Àü´ÞÇÏ¿© ÇÔ¼ö¸¦ ½ÇÇàÇÑ ÈÄ °á°ú 5¸¦ print(ad); // adº¯¼ö¿¡ ´ëÀÔÇÑ ÈÄ Ãâ·ÂÇÔ 5) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼öÀÇ ¿¹#2 function int add() { global a; // Àü¿ªº¯¼ö a¸¦ ÂüÁ¶Çϵµ·Ï ÁöÁ¤ÇÔ c= a + b; // º¯¼ö b´Â ¼±¾ðµÇÁö ¾Ê¾Æ¼­ Àü¿ªº¯¼ö¸¦ ÂüÁ¶ÇÔ return c; // º¯¼ö c´Â È£ÃâÀü¿¡ ¼±¾ð ¶Ç´Â »ç¿ëÇÏÁö ¾Ê¾Æ } // ÇÔ¼ö³»¿¡¼­ Åë¿ëµÇ´Â Áö¿ªº¯¼ö·Î È®º¸µÊ a= 3; // Àü¿ª º¯¼ö a¿¡ 3À» ´ëÀÔÇÔ b= 2; // Àü¿ª º¯¼ö b¿¡ 2¸¦ ´ëÀÔÇÔ ad= add(); //ÇÔ¼ö¸¦ ½ÇÇàÇÑ ÈÄ °á°ú 5¸¦ adº¯¼ö¿¡ ´ëÀÔÇÑ´Ù. print(ad); // adº¯¼öÀÇ °ªÀ» Ãâ·ÂÇÔ 6) »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼öÀÇ ¿¹#3 function int count() { static int cnt= 0; // ³»ºÎ Á¤Àûº¯¼ö·Î cnt¿¡ 0À» ´ëÀÔÇÏ´Â // ÃʱâÈ­´Â ÃÖÃÊ¿¡ 1ȸ¸¸ ÇÑ´Ù. cnt= cnt + 1; return cnt; } a= count(); // ÇÔ¼ö¸¦ ½ÇÇàÇÏ¿© 1À» a¿¡ ±â¾ïÇÔ b= count(); // ÇÔ¼ö¸¦ ½ÇÇàÇÏ¿© 2¸¦ b¿¡ ±â¾ïÇÔ print(a, " ", b, "\n");

Wel Version 1.0
[Â÷·Ê]  [ÇÔ¼ö»öÀÎ] [ÀÌÀü]  [´ÙÀ½]