[ Wel ¿¡·¯ ¹× °æ°í Å×½ºÆ® ] Wel ¿Â¶óÀÎ ½Ç½Ã°£ µµ¿ò¸» [ µÚ·Î°¡±â ]
¿¡·¯ ¸Þ½ÃÁö À߸øµÈ ¹è¿­ »ç¿ë ¿¡·¯!
¿¡·¯ ±Ù¿øÁö »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö

¿¡·¯ ¿øÀÎ

  ÀÌ ¿¡·¯´Â  freeÇüÀ» Á¦¿ÜÇÑ  ÀÚ·áÇüÀ¸·Î  ¼±¾ðµÈ  ´Ü¼ø º¯¼ö(¹è¿­ÀÌ ¾Æ´Ñ º¯¼ö)¿¡
¹è¿­À» ´ëÀÔÇÏ¿© º¹»çÇϰųª ¶Ç´Â  ±× ¹Ý´ëÀÇ ´ëÀÔÀ» ÇÒ ¶§(À̰ÍÀº ÇÔ¼öÀÇ ÀÎÀÚ Àü´Þ
¿¡µµ Àû¿ëÀÌ µÈ´Ù) ¹ß»ýÇϰųª ¶Ç´Â  ¿¬»ê½Ä¿¡¼­ ÇÇ¿¬»êÀÚ°¡ ¹è¿­ º¯¼öÀÌ¸ç °ýÈ£¾ÈÀÇ
¿¬»ê( ! || && , == != >= <= > < )À» Á¦¿ÜÇÑ ¿¬»êÀ» ÇÒ ¶§ ¹ß»ýÇϰųª ¶Ç´Â  »ç¿ëÀÚ
Á¤ÀÇ ÇÔ¼ö¿¡¼­ ȸ±â°ª(return value)À»  freeÇüÀÌ ¾Æ´Ñ ÀÚ·áÇüÀ¸·Î  Á¤ÀǸ¦  ÇßÀ» ¶§
¹ß»ýÇϸç ÇØ°áÃ¥Àº ´Ü¼ø º¯¼ö°¡ freeÇüÀ» Á¦¿ÜÇÑ ÀÚ·áÇüÀ¸·Î ÀÌ¹Ì ¼±¾ðµÇ¾ú´ÂÁö ¶Ç´Â
¿¬»ê½Ä¿¡¼­ ÇÇ¿¬»êÀÚ°¡ ¹è¿­À̰í À§¿¡¼­ ³ª¿­µÈ °ÍÀ» Á¦¿ÜÇÑ ¿¬»êÀ» ÇÏ´ÂÁö,  ±×¸®°í
ÇÔ¼öÀÇ È¸±â°ªÀÌ ¹è¿­ÀÎÁö¸¦ È®ÀÎÇÏ¿© ±³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù.

 [¿¹] int a, b[3]; a= b; // º¯¼ö a°¡ Á¤¼öÇü ´Ü¼ø º¯¼öÀ̰í b°¡ Á¤¼öÇü ¹è¿­ º¯¼öÀ̸ç
                         // ¹è¿­ b¸¦ ¹è¿­ a¿¡ ´ëÀÔÇϸé a°¡ ¹è¿­·Î º¯ÇüµÇ´Âµ¥
                         // ÀÌ·¸°Ô µÇ¸é aº¯¼ö°¡ ¼±¾ðµÈ °Í°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â ¸ð¼øÀÌ
                         // ¹ß»ýµÇ±â ¶§¹®¿¡ ¿¡·¯ ó¸®µÇ¸ç ¸¸ÀÏ a°¡ freeÇüÀ¸·Î
                         // ¼±¾ðµÇ¾ú´Ù¸é ÀÌ¿Í °°Àº Á¶°ÇÀ» ¹«½ÃÇϰí Á¤»ó 󸮵ȴÙ.

      int a[3], b[2]; c= a * b; // ¹è¿­ º¯¼ö¿¡ ´ëÇÑ °ö¼ÀÀº Çã¿ëµÇÁö ¾Ê¾Æ ¿¡·¯ ¹ß»ý
ver: v1.3 , cpage: c949 Wel Version 1.0 code: e23 , id: i32767
[Â÷·Ê]  [ÇÔ¼ö»öÀÎ] 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
[Â÷·Ê]  [ÇÔ¼ö»öÀÎ] [ÀÌÀü]  [´ÙÀ½]