` ¥µ. ÇÔ¼ö¿Í ¸Þ¸ð¸® À¯Çü C¿¡¼­ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¸ñÀûÀº ¹Ù·Î °è»ê °á°ú¸¦ ÀÌ¿ëÇϱâ À§Çؼ­ÀÌ´Ù. ±×·±µ¥ °è»ê °á°úµµ ÇÏ ³ªÀÇ µ¥ÀÌÅÍÀ̱⠶§¹®¿¡ ¿ª½Ã ƯÁ¤ µ¥ÀÌÅÍ À¯ÇüÀ» °®°Ô µÈ´Ù. ±×¸®°í C¿¡¼­´Â ¹Ýµå½Ã ÇϳªÀÇ µ¥ ÀÌÅÍ À¯ÇüÀÇ °ª¸¸ °è»ê °á°ú·Î »êÃâÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÀÌ´Â ¾î´À ¶§´Â 2¸¦(Áï Á¤¼ö µ¥ÀÌÅÍ À¯Çü ÀÇ °ªÀ») ¾î´À ¶§´Â 2.2¸¦(Áï ½Ç¼ö µ¥ÀÌÅÍ À¯ÇüÀÇ °ªÀ») °è»ê °á°ú·Î »êÃâÇÒ ¼ö´Â ¾ø´Ù´Â ¾ê±â°¡ µÈ´Ù(Á¤¼ö°ª¸¸ »êÃâÇϰųª ¾Æ´Ï¸é ½Ç¼ö°ª¸¸ »êÃâÇÏ¿©¾ß ÇÑ´Ù). C¿¡¼­ÀÇ ÇÔ¼ö´Â ƯÁ¤ ÀÛ¾÷À» ¼öÇàÇÏ°í ±× °á°ú¸¦ ³Ñ°ÜÁÖ´Â ¿ªÇÒÀ» Çϴµ¥, ¿¹¸¦ µé¾î ´ÙÀ½°ú °° Àº Ãâ·ÂÀ» ³»´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù°í Çϸé... ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢********************************************************************** ¦¢ ¦¢ OUTPUT BY HONG GIL DONG ¦¢ ¦¢********************************************************************** ¦¢ ¦¢ INPUT DATA1 ¦¢ ¦¢********************************************************************** ¦¢ ¦¢ OUTPUT1 ¦¢ ¦¢********************************************************************** ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À̸¦ printf·Î Ãâ·Â½ÃÅ°¸é µÇÁö¸¸ ÀÌ°æ¿ì´Â for ¹®À» »ç¿ëÇÏ¿© ¹Ýº¹ Ãâ·ÂÇÏ´Â °ÍÀÌ ÆíÇѵ¥... #include main() { int i; for (i = 1; i <= 70; i++) /* ù¹ø°·Î '*'¸¦ 70°³ Ãâ·Â½ÃÅ´ */ putchar('*'); putchar('\n'); printf(" OUTPUT BY HONG GIL DONG\n"); for (i = 1; i <= 70; i++) /* µÎ¹ø°·Î '*'¸¦ 70°³ Ãâ·Â½ÃÅ´ */ putchar('*'); putchar('\n'); printf(" INPUT DATA1\n"); for (i = 1; i <= 70; i++) /* ¼¼¹ø°·Î '*'¸¦ 70°³ Ãâ·Â½ÃÅ´ */ putchar('*'); putchar('\n'); printf(" OUTPUT1\n"); for (i = 1; i <= 70; i++) /* ³×¹ø°·Î '*'¸¦ 70°³ Ãâ·Â½ÃÅ´ */ putchar('*'); putchar('\n'); } À§ÀÇ ÇÁ·Î±×·¥À» º¸¸é ´ÙÀ½ ¹®ÀåÀÌ 4¹ø ¹Ýº¹µÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ for (i = 1; i <= 70; i++) ¦¢ ¦¢ putchar('*'); ¦¢ ¦¢ putchar('\n'); ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ µû¶ó¼­ À̸¦ Çѹø¸¸ ÀÔ·ÂÇÏ°í ÇÊ¿äÇÒ ¶§¸¶´Ù ºÒ·¯ ¾²¸é ÆíÇѵ¥... ±×·¡¼­ »ç¿ëÇÏ°Ô µÈ °ÍÀÌ ¹Ù·Î ÇÔ¼öÀÌ´Ù. À§ÀÇ °æ¿ì ÇÔ¼ö¸¦ »ç¿ëÇÏ°Ô µÇ¸é ´ÙÀ½°ú °°ÀÌ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ #include ¦¢ ¦¢ print_star() { -----+ ¦¢ ¦¢ int i; | ¦¢ ¦¢ for (i = 1; i <= 70; i++) | '*'¸¦ 70°³ Ãâ·Â½ÃÅ°´Â ÇÔ¼ö ¦¢ ¦¢ putchar('*'); | ¦¢ ¦¢ putchar('\n'); | ¦¢ ¦¢ } -----+ ¦¢ ¦¢ ¦¢ ¦¢ main() { ¦¢ ¦¢ print_star(); <¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¨ç ¦¢ ¦¢ printf(" OUTPUT BY HONG GIL DONG\n"); ¦¢ ¦¢ print_star(); <¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¨è ¦¢ ¦¢ printf(" INPUT DATA1\n"); ¦¢ ¦¢ print_star(); <¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¨é ¦¢ ¦¢ printf(" OUTPUT1\n"); ¦¢ ¦¢ print_star(); <¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¨ê ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ ÇÁ·Î±×·¥À» ¾ÕÀÇ ÇÁ·Î±×·¥°ú ºñ±³ÇØ º¸¸é ÈξÀ Á¤¸®µÈ ´À³¦À» ÁÙ °ÍÀÌ´Ù. ¶Ç print_star¶õ °ÍÀÌ '*'¸¦ ÇÑ ÁÙ Ãâ·Â½ÃÅ°´Â °ÍÀ̶ó´Â °ÍÀ» ¾È´Ù¸é À§ÀÇ ÇÁ·Î±×·¥ÀÌ ¾ÕÀÇ ÇÁ·Î±×·¥ º¸´Ù ÈξÀ ´õ ÀÌÇØÇϱ⠽±´Ù. ±×¸®°í À§ÀÇ print_star´Â ÇÊ¿äÇÒ ¶§¸¶´Ù »ç¿ëÇÒ ¼ö ÀÖ°í ´Ù¸¥ »ç¶÷ÀÇ ´Ù¸¥ ÇÁ ·Î±×·¥¿¡¼­µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡À» °®°Ô µÇ´Âµ¥ ÀÌ°ÍÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °¡Àå Å« ÀÌÀ¯¶ó°í ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ÇÔ¼ö¸¦ ¸¹ÀÌ »ç¿ëÇÏ¸é ¼öÇà½Ã°£ÀÌ ¸¹ÀÌ °É¸®±â ¶§¹®¿¡ ¼Óµµ´Â ¶³¾îÁö°Ô µÈ´Ù. µû¶ó¼­ ¼Óµµ¿¡ ¹Î°¨ÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ÇÔ¼öÀÇ »ç¿ë¿¡ ½ÅÁßÀ» ±âÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ÇÔ¼ö È£ÃâÀÌ ¾î¶»°Ô 󸮵ǴÂÁö¸¦ ³ªÅ¸³»´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ main() { | ¨è ¦¢ ¦¢ int i = 10; |¨ç +-----------------------------¡æ sum(int x, int y) { ¦¢ ¦¢ int j = 100; | | | printf("sum = %d\n",x+y); ¦¢ ¦¢ sum(i, j); ¡é---+ ¨ê ¨é | ++x; ¦¢ ¦¢ ++i; ¡ç----------------------------+ | ++y; ¦¢ ¦¢ ++j; | | | printf("x = %d, y = %d\n",x,y); ¦¢ ¦¢ printf("%d ,i+j); |¨ë +---¡é } ¦¢ ¦¢ } ¡é ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÏ´Ü ÇÔ¼ö È£Ãâ¹®±îÁö ¼öÇàµÈ´Ù(¨ç). sumÀ̶ó°í ÇÏ´Â ÇÔ¼ö È£ÃâÀ» ¸¸³ª°Ô µÇ¸é ½ÇÁ¦·Î sumÇÔ¼ö ·Î Á¦¾î°¡ À̵¿ÇÏ¿©(¨è), À̸¦ Â÷·Ê´ë·Î ¼öÇàÇÏ°Ô µÈ´Ù(¨é). ¼öÇàÈÄ ÇÔ¼öÀÇ ³¡¿¡ µµ´ÞÇÏ°Ô µÇ¸é, Á¦¾î°¡ ÀÚ½ÅÀ» ºÎ¸¥ ÇÔ¼ö, Áï mainÀ¸·Î ´Ù½Ã µ¹¾Æ°¡°Ô µÇ¸ç(À̶§ sum È£ÃâÀÌ ÀÖ´ø ºÎºÐÀ¸·Î µ¹ ¾Æ°£´Ù)(¨ê), ±× ´ÙÀ½ ºÎºÐºÎÅÍ Â÷·Ê´ë·Î ¼öÇàÇÏ°Ô µÈ´Ù(¨ë). À§ÀÇ °æ¿ì¿¡´Â ÇÔ¼ö È£Ãâ ÀÚü°¡ ÇÏ ³ªÀÇ ¹®ÀåÀ̾úÀ¸¹Ç·Î ±× ´ÙÀ½ ¹®ÀåºÎÅÍ ¼öÇàÇÏÁö¸¸ ÇÔ¼ö È£ÃâÀÌ ¼ö½Ä ³»ÀÇ ÀϺο´À» ¶§¿¡´Â ±× ¼ö½ÄÀ» °è¼Ó °è»êÇÏ°Ô µÈ´Ù. < ÇÔ¼öÀÇ Á¤ÀÇ¿Í È£Ãâ > ©ç ÇÔ¼öÀÇ Á¤ÀÇ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ [¸Þ¸ð¸® À¯Çü] [µ¥ÀÌÅÍ À¯Çü] ÇÔ¼ö À̸§ ( [Çü½ÄÀÎÀÚ1,.....Çü½ÄÀÎÀÚn] ) ¦¢ ¦¢ { [ÇÔ¼ö ÇÁ·Î±×·¥] } ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¿ì¼± ¸Þ¸ð¸® À¯ÇüÀº ÀÌ ÇÔ¼ö¸¦ ¾î¶² °÷¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °¡¸¦ ³ªÅ¸³»´Âµ¥ ¿©±â¼­´Â ÀÏ´Ü »ý ·«µÇ¾ú´Ù°í °¡Á¤ÇÑ´Ù. µ¥ÀÌÅÍ À¯ÇüÀº ¹Ù·Î ÀÌ ÇÔ¼ö°¡ °è»êÇÏ´Â °è»ê °á°úÀÇ µ¥ÀÌÅÍ À¯ÇüÀ» ÀÇ¹Ì ÇÑ´Ù(¸ðµç ÇÔ¼ö´Â °è»ê °á°ú°¡ Àֱ⠶§¹®¿¡ ÀÌ µ¥ÀÌÅÍ À¯Çüµµ ¹Ýµå½Ã ÀÖ¾î¾ß ÇÑ´Ù). ±×·¯³ª °è»ê °á°ú°¡ int µ¥ÀÌÅÍ À¯ÇüÀÏ °æ¿ì »ý·«ÇÒ ¼ö ÀÖ´Ù. Áö±Ý±îÁö »ç¿ëÇÑ mainµµ ÇÔ¼öÀ̱⠶§¹®¿¡ °è»ê °á°ú°¡ Àִµ¥ ÀÌÀÇ µ¥ÀÌÅÍ À¯ÇüÀÌ »ý·«µÇ¾úÀ¸¹Ç·Î ¹Ù·Î int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â ÇÔ¼ö¿´À½À» ¾Ë ¼ö ÀÖ´Ù. ÇÔ¼öÀ̸§Àº ±× ÇÔ¼ö°¡ ÇÏ´Â ¿ªÇÒ¿¡ µû¶ó Àû´çÇÏ°Ô ¾Ë¾Æº¸±â ½¬¿î ¸»À» ¾²¸é µÇ´Âµ¥ ÀÌ´Â º¯¼öÀÇ À̸§°ú °°ÀÌ ¾ËÆĺª°ú ¼ýÀÚ¸¦ ¼¯¾î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ½ÃÀÛÀº ¿ª½Ã ¾ËÆÄ ºªÀ¸·Î ½ÃÀÛÇÏ¿©¾ß ÇÑ´Ù. ÇÔ¼ö À̸§ ´ÙÀ½ÀÇ ¼Ò°ýÈ£´Â ¾ÕÀÇ À̸§ÀÌ ÇÔ¼ö¶ó´Â °ÍÀ» ¾Ë·ÁÁÖ´Â ±âÈ£ À̱⠶§¹®¿¡ ¹Ýµå½Ã ÀÖ¾î¾ß ÇÏ¸ç ¼Ò°ýÈ£ ¾È¿¡´Â ÀÎÀÚµéÀÇ ¸ñ·ÏÀÌ ¿À´Âµ¥ ÀÌ ÀÎÀÚµéÀ» Ưº°È÷ Çü ½Ä ÀÎÀÚ¶ó°í ÇÑ´Ù(Çü½Ä ÀÎÀÚµéÀº º¯¼ö ¼±¾ð°ú °°Àº ÇüÅ·Π¿À°Ô µÈ´Ù). ±× ´ÙÀ½ÀÇ Áß°ýÈ£´Â ÇÔ¼ö ÀÇ ½ÇÁ¦ ³»¿ëÀÎ ÇÁ·Î±×·¥À» µÑ·¯½Î°í ÀÖ´Â °ÍÀ¸·Î ¿ª½Ã ¹Ýµå½Ã ¿Í¾ß ÇÑ´Ù. ƯÈ÷ ÇÁ·Î±×·¥ÀÌ ¾ø´Â °æ¿ì¿¡µµ Áß°ýÈ£´Â ÀÖ¾î¾ß ÇÑ´Ù. Áß°ýÈ£ ¾È¿¡´Â ¹Ù·Î ÀÌ ÇÔ¼ö¿¡ ´ëÇÑ ÇÁ·Î±×·¥ÀÌ ¿À´Âµ¥ main¿¡ ¼­¿Í °°ÀÌ º¯¼ö¸¦ ¼±¾ðÇÏ¿© »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. À§ ÇÔ¼öÀÇ Á¤ÀÇ¿¡¼­ [ ]·Î µÑ·¯½ÎÀÎ ºÎºÐÀº »ý·«ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ °¡Àå °£´ÜÇÑ ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ do_noting() { ¦¢ ¦¢ } ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÌ ¾ø±â ¶§¹®¿¡ ÇÏ´Â Àϵµ ¾ø´Ù. ±×·¸±â ¶§¹®¿¡ ¾Æ¹«°Íµµ ÇÏ´Â°Ô ¾ø´Â ÇÔ¼ö ¶ó°í ÇÒ ¼ö Àִµ¥ °è»ê °á°úÀÇ µ¥ÀÌÅÍ À¯Çü¸¸Àº intÀÌ´Ù. µû¶ó¼­ °è»ê °á°úÀÇ µ¥ÀÌÅÍ À¯ÇüÀÌ ÀÖ ´Ù°í Çؼ­ ¹Ýµå½Ã °è»ê °á°ú°¡ ÀÖ´Â °ÍÀº ¾Æ´Ï¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ´ÙÀ½Àº À̺¸´Ù Á¶±Ý ´õ º¹ÀâÇÑ ÇÔ¼öÀÇ ÇÑ ¿¹ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ print_hello() { ¦¢ ¦¢ printf("Hello!\n"); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ ÇÔ¼ö¸¦ ºÎ¸£°Ô µÇ¸é ¾ðÁ¦³ª Hello!¶õ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°Ô µÈ´Ù. ±×¸®°í ÇÔ¼ö À̸§ ¾Õ¿¡ µ¥ÀÌÅÍ À¯ÇüÀÌ »ý·«µÇ¾ú±â ¶§¹®¿¡ int µ¥ÀÌÅÍ À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â °ÍÀÌ µÇ³ª À§ ÇÔ¼ö¿¡¼­ ´Â °è»ê °á°ú¶ó´Â °ÍÀÌ ¾Æ¿¹ ¾ø´Ù. µû¶ó¼­ À§ÀÇ ÇÔ¼ö´Â Àϸ¸ ÇÏ°í °è»ê °á°ú´Â ¾ø´Â ÇÔ¼öÀÌ´Ù. ´ÙÀ½ ÇÔ¼öÀÇ ¿¹¸¦ »ìÆ캸ÀÚ. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ sum(int x, int y) { ¦¢ ¦¢ printf("x + y = %d\n",x+y); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ÇÔ¼ö¿¡¼­´Â µåµð¾î ÀÎÀÚ°¡ »ç¿ëµÇ¾ú´Ù. À§ÀÇ ÇÔ¼ö sumÀº µÎ °³ÀÇ ÀÎÀÚ¸¦ °®´Âµ¥ ù¹ø° ÀÎ ÀÚÀÇ À̸§Àº xÀ̸ç ÀÌÀÇ µ¥ÀÌÅÍ À¯ÇüÀº intÀÌ´Ù. µû¶ó¼­ ù¹ø° ÀÎÀڷδ Á¤¼ö µ¥ÀÌÅÍ°¡ ¿Í¾ß ÇÑ ´Ù. ¸¶Âù°¡Áö·Î µÎ¹ø° ÀÎÀÚÀÇ À̸§Àº yÀ̸ç ÀÌÀÇ µ¥ÀÌÅÍ À¯Çüµµ intÀ̱⠶§¹®¿¡ À§ÀÇ ÇÔ¼ö sum À» »ç¿ëÇÏ·Á¸é sum(10,20)°ú °°ÀÌ µÎ °³ÀÇ Á¤¼ö µ¥ÀÌÅ͸¦ ÀÎÀÚ·Î ÁÖ¾î¾ß ÇÑ´Ù. ¶Ç ´ÙÀ½ ÇÔ¼ö¸¦ »ìÆ캸ÀÚ. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ float sum2(float x, float y) { ¦¢ ¦¢ return (x+y); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ÇÔ¼ö¿¡¼­µµ ÀÎÀÚ¸¦ ¿ª½Ã 2°³¸¦ °®´Âµ¥ µÑ ´Ù float µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ÀÌ sum2¶õ ÇÔ¼ö´Â float µ¥ÀÌÅÍ À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÔÀ» ÀǹÌÇÑ´Ù. ±× ´ÙÀ½ ½ÇÁ¦ ÇÏ´Â ÀÏÀº ¹Ù·Î return ¹®À¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç ÀÌ return ¹®Àº ÇÔ¼öÀÇ °è»ê °á°ú¸¦ »êÃâÇÏ´Â ¹®ÀåÀ¸·Î À§ÀÇ ÇÔ¼ö sum2´Â x+y ¸¦ °è»ê °á°ú·Î »êÃâÇÏ°Ô µÈ´Ù. ´ÙÀ½¿¡ ³ª¿À´Â ÇÔ¼ö´Â Áö±Ý±îÁöÀÇ ÇÔ¼ö °¡¿îµ¥ Á¦ÀÏ º¹ÀâÇÑ ÇüÅ·ΠµÇ¾î ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ long int power(int n) { ¦¢ ¦¢ int i; ¦¢ ¦¢ long int res = 1l; ¦¢ ¦¢ if (n < 0) ¦¢ ¦¢ return (-1l); ¦¢ ¦¢ else if (n == 0) ¦¢ ¦¢ return (1); ¦¢ ¦¢ else { ¦¢ ¦¢ for (i = 1; i <= n; i++) ¦¢ ¦¢ res *= i; ¦¢ ¦¢ return (res); ¦¢ ¦¢ } ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ÇÔ¼ö°¡ °è»ê °á°ú·Î »êÃâÇÏ´Â °ªÀÇ µ¥ÀÌÅÍ À¯ÇüÀº long intÀ̸ç int À¯ÇüÀÇ ÀÎÀÚ¸¦ ÇÑ °³ °® ´Â´Ù. ±×¸®°í ÀÚüÀûÀ¸·Î int À¯ÇüÀÇ º¯¼ö i¿Í long int À¯ÇüÀÇ º¯¼ö res¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇÏ°í ÀÖ ´Âµ¥ ÀÌ º¯¼ö´Â ¹°·Ð À§ÀÇ ÇÔ¼ö ³»¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ©è ÇÔ¼öÀÇ È£Ãâ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ÇÔ¼ö À̸§(½ÇÀÎÀÚ1,.....½ÇÀÎÀÚn) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Áï ¿øÇÏ´Â ÇÔ¼öÀÇ À̸§ ´ÙÀ½¿¡ °ýÈ£¸¦ ºÙÀÌ°í ±× ¾È¿¡ ÀÎÀÚÀÇ °ªÀ» ÁÖ¸é µÇ´Âµ¥, ÀÎÀÚ°¡ ¾ø´Â ÇÔ¼öÀÇ °æ¿ì¶óµµ °ýÈ£´Â Àý´ë·Î »ý·«ÇÒ ¼ö ¾ø´Ù. µû¶ó¼­ ¾ÕÀÇ do_nothing ÇÔ¼ö¸¦ È£ÃâÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ do_nothing() ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ do_nothingÀº ½ÇÁ¦·Î ÇÏ´Â ÀÏÀÌ ¾øÀ¸¹Ç·Î À§¿Í °°ÀÌ È£ÃâÇÏ¿©µµ ¾Æ¹«·± º¯È­µµ ¹ß»ýÇÏÁö ¾Ê´Â ´Ù. ±×·¯³ª print_hello¸¦ È£ÃâÇÏ°Ô µÇ¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ print_hello() ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Hello!¶ó´Â ¸Þ½ÃÁö°¡ È­¸é¿¡ ³ªÅ¸³ª°Ô µÈ´Ù. ¹Ý¸é¿¡ sum ÇÔ¼öÀÇ °æ¿ì¿¡´Â µÎ °³ÀÇ ÀÎÀÚ°¡ Àֱ⠶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ µÎ °³ÀÇ °ªÀ» ÁöÁ¤ÇÏ¿© È£ÃâÇÏ¿©¾ß ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ sum(2,3) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À̶§ sum ´ÙÀ½ÀÇ ÀÎÀÚµéÀº sum ÇÔ¼öÀÇ Çü½Ä ÀÎÀڵ鿡 ´ÙÀ½°ú °°ÀÌ Â÷·Ê´ë·Î ÇÒ´çµÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ +---+2´Â x¿¡ Àü´Þ ¦¢ ¦¢ sum(2,3)|------------------------ ÇÔ¼ö È£Ãâ(½ÇÀÎÀÚ) ¦¢ ¦¢ +-+------+3Àº y¿¡ Àü´Þ ¦¢ ¦¢ | | ¦¢ ¦¢ sum(int x, int y)-{-------------- ÇÔ¼ö Á¤ÀÇ(Çü½ÄÀÎÀÚ) ¦¢ ¦¢ printf("x + y = %d\n",x+y); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÇÔ¼ö Á¤ÀÇ¿¡¼­ÀÇ ÀÎÀÚµéÀº °ªÀÌ ¾ø´Ù(ÀÌ´Â ´ç¿¬È÷ ÃʱⰪµµ ÁÙ ¼ö°¡ ¾ø´Ù). À̵éÀÌ °ªÀ» °®°Ô µÇ ´Â °ÍÀº ¹Ù·Î ÇÔ¼ö È£Ãâ½Ã °°ÀÌ ÁöÁ¤ÇÑ ÀÎÀÚµéÀ» ÅëÇؼ­ÀÌ´Ù. µû¶ó¼­ ¾ÕÀÇ ¿¹ÀÇ °æ¿ì¿¡´Â x°¡ 2, y°¡ 3ÀÌ µÇ¹Ç·Î x + y = 5¶ó°í ÇÏ´Â Ãâ·ÂÀÌ ³ª¿À°Ô µÈ´Ù. ÇÔ¼ö È£ÃâÀº ¼ö½ÄÀÇ Çϳª·Î °£ÁֵǸç ÀÌ´Â ÇÔ¼ö È£ÃâÀ» ¼ö½Ä ³»¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ ´Ù. ¶Ç ÇÔ¼ö È£Ãâ¿¡ ';'¸¸ ºÙÀÌ¸é ¹Ù·Î ¼ö½Ä¹®ÀÌ, Áï ¹®ÀåÀÌ µÊÀ» ÀǹÌÇÑ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ sum(1,5); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÇÔ¼ö È£Ãâµµ ¼ö½ÄÀ̱⠶§¹®¿¡ °è»ê °á°ú°¡ ÀÖ¾î¾ß Çϴµ¥ ÇÔ¼ö È£ÃâÀÇ °è»ê °á°ú´Â ¹Ù·Î ±× ÇÔ ¼öÀÇ °è»ê °á°ú°¡ µÈ´Ù. µû¶ó¼­ power ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ È£ÃâÇÏ¿´À» ¶§. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ 1+power(3) ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ power(3)ÀÇ °è»ê °á°ú´Â power ÇÔ¼ö¿¡ 3À̶õ °ªÀÇ ½ÇÀÎÀڷΠȣÃâÇÏ¿´À» ¶§ÀÇ °è»ê °á°ú, Áï 6ÀÌ µÇ¸ç µû¶ó¼­ 1+power(3)Àº 7ÀÌ µÈ´Ù. ´Ü power´Â °è»ê °á°ú°¡ long intÀ̱⠶§¹®¿¡ 1+power(3)ÀÇ °è»êÀº int+long int°¡ µÇ¾î long int À¯ÇüÀÌ µÈ´Ù. ±×·¯¸é ´ÙÀ½ÀÇ ¿¹¸¦ º¸ÀÚ. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ x = power(2)+power(3); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ ¹®Àå¿¡¼­´Â ÇÔ¼ö È£ÃâÀÌ 2°³³ª ÀÖ´Ù(°°Àº ¼ö½Ä ³»¿¡ ÇÔ¼ö È£ÃâÀÌ ¿©·¯ °³ À־ ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù). À̵éÀ» °è»êÇϸé power(2)´Â 2, power(3)Àº 6ÀÌ µÇ¹Ç·Î °á±¹ x = 2+6ÀÌ µÇ¸ç ºÎ¼ö È¿°ú¿¡ ÀÇÇØ xÀÇ °ªµµ 8À̵ȴÙ. ¶Ç ´ÙÀ½ ¹®ÀåÀ» »ìÆ캸ÀÚ. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ y = power(power(3)); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ¹®ÀåÀº ½ÇÀÎÀÚ·Î ¶Ç ÇÔ¼ö È£ÃâÀÌ »ç¿ëµÇ¾ú´Ù. CÀÇ ½ÇÀÎÀÚ·Î ¼ö½ÄÀÌ ¿Ã ¼ö Àֱ⠶§¹®¿¡ À§¿Í °°ÀÌ ´ç¿¬È÷ ÇÔ¼ö È£ÃâÀÌ ¿Ã ¼ö ÀÖ´Ù. ÀÌ°æ¿ì ¾ÈÀÇ ÇÔ¼ö È£ÃâÀ» ¸ÕÀú °è»êÇϹǷΠpower(3)Àº 6ÀÌ µÇ°í ÀÌ´Â power(6)ÀÌ µÇ¾î °á±¹ y´Â 720ÀÇ °ªÀ» °®°Ô µÈ´Ù. ´ÙÀ½Àº ½ÇÁ¦·Î ÇÔ¼ö¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÇ ¸î °¡Áö ¿¹ÀÌ´Ù. long factorial(int n) { /* longÇüÀ» µÇµ¹¸®´Â ÇÔ¼ö */ int i; long product = 1l; for (i = 2; i <= n; i++) product *= i; return product; } main() { int num; long fact; for (num = 1; num <= 10; num++) { fact = factorial(num); /* factorial ÇÔ¼ö È£ÃâµÚ fact¿¡ ´ëÀÔ */ printf("%2d! = %8ld\n",num,fact); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800 À§ÀÇ for ¹®Àº fact º¯¼ö¸¦ ¾ø¾Ö°í ´ÙÀ½°ú °°ÀÌ °£°áÇÏ°Ô ÇÒ ¼öµµ ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ for (num = 1; num <= 10; num++) ¦¢ ¦¢ printf("%2d! = %8ld\n",num,factorial(num)); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ void a() { printf("This is function test.\n"); printf("Now in function a()\n"); } main() { int s; a(); /* a ÇÔ¼ö È£Ãâ */ sum(10,20); /* sum ÇÔ¼ö¸¦ ½ÇÀÎÀÚ 10°ú 20À¸·Î È£Ãâ */ s = sum(20,60); /* sum ÇÔ¼ö¸¦ 20°ú 60À¸·Î È£ÃâÇÑ ÈÄ µÇµ¹¸² °ªÀ» s¿¡ ÀúÀå */ printf("sum from 20 to 60 = %d\n",s); printf("sum from 10 to 100 = %d\n",sum(10,100)); /* sum ÇÔ¼öÀÇ µÇµ¹¸² °ªÀ» printfÇÔ¼öÀÇ º¯¼ö·Î »ç¿ë */ } int sum(int a, int b) { /* Á¤¼öÇü º¯¼ö 2°³¸¦ ¹Þ¾Æ Á¤¼öÇüÀ» µÇµ¹¸®´Â ÇÔ¼ö */ int i, s = 0; printf("Now in function b()\n"); for (i = a; i <= b; i++) s = s + i; return s; /* sÀÇ °ªÀ» È£ÃâÇÑ ÇÔ¼ö¿¡°Ô µÇµ¹¸°´Ù */ } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- This is function test. Now in function a() Now in function b() Now in function b() sum from 20 to 60 = 1640 Now in function b() sum from 10 to 100 = 5005 À§ ÇÁ·Î±×·¥¿¡¼­ óÀ½ÀÇ sum ÇÔ¼ö È£Ãâ¿¡¼­ÀÇ µÇµ¹¸² °ªÀº ¾Æ¹«°÷¿¡µµ »ç¿ëµÇÁö ¾Ê¾Ò´Ù. ÀÌ¿Í °°ÀÌ ÇÔ¼öÀÇ µÇµ¹¸² °ªÀº ÇÊ¿ä¿¡ µû¶ó ¹«½ÃµÉ ¼öµµ ÀÖ´Ù. ´ÙÀ½ÀÇ sum ÇÔ¼ö È£Ãâ¿¡¼­´Â µÇµ¹¸² °ªÀÌ º¯¼ö s¿¡ ´ëÀÔµÈ ÈÄ È­¸éÀ¸·Î Ãâ·ÂµÇ°í ÀÖÀ¸¸ç ¸¶Áö¸·ÀÇ printf ¹®À» º¸¸é sumÇÔ¼ö ÀÚü°¡ Á÷Á¢ »ç¿ëµÇ°í ÀÖ´Ù. C¿¡¼­´Â ÇÔ¼öÀÇ µÇµ¹¸² °ªÀÌ ²À ¾î¶² º¯¼ö¿¡ ´ëÀ﵃ ÇÊ¿ä´Â ¾ø´Ù. ÀÌó·³ µÇµ¹¸² °ªÀº º¯¼ö¿¡ ´ëÀ﵃ ¼öµµ ÀÖ°í ´Ù¸¥ ÇÔ¼ö È£ÃâÀÇ ½ÇÀÎÀÚ·Î Á÷Á¢ »ç¿ëµÉ ¼öµµ ÀÖ À½À» ¾Ë ¼ö°¡ ÀÖ´Ù. #include main() { char c; int vno = 0; /* ¸ðÀ½ÀÇ °¹¼ö¸¦ ±â¾ïÇÒ º¯¼ö */ int cno = 0; /* ÀÚÀ½ÀÇ °¹¼ö¸¦ ±â¾ïÇÒ º¯¼ö */ int uno = 0; /* ´ë¹®ÀÚÀÇ °¹¼ö¸¦ ±â¾ïÇÒ º¯¼ö */ int lno = 0; /* ¼Ò¹®ÀÚÀÇ °¹¼ö¸¦ ±â¾ïÇÒ º¯¼ö */ int dno = 0; /* ¼ýÀÚÀÇ °¹¼ö¸¦ ±â¾ïÇÒ º¯¼ö */ while ((c = getchar()) != EOF) { if (is_vowel(c)) /* ÀÐÀº ¹®ÀÚ°¡ ¸ðÀ½À̸é */ ++vno; /* ¸ðÀ½ ¼ýÀÚ¸¦ Çϳª Áõ°¡ */ else if (is_alphabet(c)) /* ¸ðÀ½ÀÌ ¾Æ´Ñ ¾ËÆĺªÀ̸é, Áï ÀÚÀ½À̸é */ ++cno; /* ÀÚÀ½ ¼ýÀÚ¸¦ Çϳª Áõ°¡ */ if (is_upper(c)) /* ÀÐÀº ¹®ÀÚ°¡ ´ë¹®ÀÚÀ̸é */ ++uno; /* ´ë¹®ÀÚ ¼ýÀÚ¸¦ Çϳª Áõ°¡ */ else if (is_lower(c)) /* ´ë¹®ÀÚ°¡ ¾Æ´Ñ ¼Ò¹®ÀÚÀ̸é */ ++lno; /* ¼Ò¹®ÀÚ ¼ýÀÚ¸¦ Çϳª Áõ°¡ */ else if (is_digit(c)) /* ÀÐÀº °ÍÀÌ ¼ýÀÚ¸é */ ++dno; /* ¼ýÀÚ Ä«¿îÆ®¸¦ Çϳª Áõ°¡ */ } printf(" Number of Vowels : %d\n",vno); printf("Number of Consonants : %d\n",cno); printf("Number of Uppercases : %d\n",uno); printf("Number of Lowercases : %d\n",lno); printf(" Number of Digits : %d\n",dno); } is_vowel(char c) { switch (c) { case 'a': case 'e': case 'i': case 'o': case 'u': case 'A': case 'E': case 'I': case 'O': case 'U': return (1); /* ¹®ÀÚ°¡ ¸ðÀ½ÀÎ °æ¿ì ÂüÀÎ 1À» °è»ê °á°ú·Î »êÃâ */ default : return (0); /* ¸ðÀ½ÀÌ ¾Æ´Ï¹Ç·Î °ÅÁþÀÎ 0À» °è»ê °á°ú·Î »êÃâ */ } } is_alphabet(char c) { /* ÁÖ¾îÁø ¹®ÀÚ°¡ ¿µ¹® ¾ËÆĺªÀÎÁö ÆÇ´ÜÇÏ´Â ÇÔ¼ö */ return (is_upper(c) || is_lower(c)); } is_upper(char c) { /* ÁÖ¾îÁø ¹®ÀÚ°¡ ´ë¹®ÀÚÀÎÁö ÆÇ´ÜÇÏ´Â ÇÔ¼ö */ return (c >= 'A' && c <= 'Z'); } is_lower(char c) { /* ÁÖ¾îÁø ¹®ÀÚ°¡ ¼Ò¹®ÀÚÀÎÁö ÆÇ´ÜÇÏ´Â ÇÔ¼ö */ return (c >= 'a' && c <= 'z'); } is_digit(char c) { /* ÁÖ¾îÁø ¹®ÀÚ°¡ ¼ýÀÚÀÎÁö ÆÇ´ÜÇÏ´Â ÇÔ¼ö */ return (c >= '0' && c <= '9'); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>count < readme ³ú Number of Vowels : 5370 Number of Consonants : 9072 Number of Uppercases : 2481 Number of Lowercases : 11961 Number of Digits : 265 ¡Ø ÇÔ¼ö¿Í ¼­ºê·çƾ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡´Â µÎ°¡Áö Á¾·ùÀÇ ÇÔ¼ö°¡ ÀÖ´Ù. ¿ø·¡ ÀǹÌÀÇ ÇÔ¼ö¿Í ¼­ºê·çƾ(¶Ç´Â ÇÁ·Î ½ÃÀú)À̶ó°í ºÎ¸£´Â °ÍµéÀε¥, ¼­ºê·çƾ(subroutine)Àº °è»ê °á°ú°¡ ¾ø°í Àϸ¸ Çϴµ¥ ¹ÝÇØ ÇÔ¼ö ´Â °è»ê °á°ú°¡ ¹Ýµå½Ã ÀÖ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ print_hello() { ¦¢ ¦¢ printf("Hello!\n"); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Hello!¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·Â½ÃÅ°´Â Àϸ¸ ÇÏ°í °è»ê °á°ú´Â ¾øÀ¸¹Ç·Î(return ¹®ÀÌ ¾øÀ¸¸é °è»ê °á °ú°¡ ¾ø´Â °ÍÀÌ´Ù) ÀÌ´Â ¼­ºê·çƾ¿¡ ÇØ´çµÈ´Ù. ¹Ý¸é¿¡ ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì¿¡´Â ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ sum(int x, int y) { ¦¢ ¦¢ return (x+y); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ x+yÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇϹǷΠÇÔ¼ö¿¡ ÇØ´çµÈ´Ù. ÇÔ¼ö¿Í ¼­ºê·çƾÀº È£ÃâÇÒ ¶§µµ Â÷ÀÌ°¡ ÀÖ´Ù. Áï ¼­ºê·çƾÀº ´ÙÀ½°ú °°ÀÌ È£Ãâ ÀÚü¸¸À¸·Î(ÀÌ°ÍÀ¸·Î¸¸) ¹®ÀåÀÌ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ print_hello(); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ±×·¯³ª ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ¹Ýµå½Ã ¼ö½Ä°ú °°ÀÌ »ç¿ëµÇ¾î¾ß¸¸(±×°Íµµ ºÎ¼öÈ¿°ú°¡ ÀÖ´Â °æ¿ì¿¡ ¸¸) ¹®ÀåÀ¸·Î¼­ Àǹ̰¡ ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ x = sum(1,3); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ C¿¡¼­´Â ¼­ºê·çƾ°ú ÇÔ¼ö¸¦ ¸ðµÎ ÇÔ¼ö·Î Ãë±ÞÇϱ⠶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ ÀÇ¹Ì ¾ø´Â ¹®Àåµéµµ °¡´É ÇÏ°Ô µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ x = print_hello(); ¦¢ ¦¢ sum(2,4); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿¡¼­ print_hello()´Â °è»ê °á°ú°¡ ¾ø´Âµ¥ ÀÌ°ÍÀÌ ¸¶Ä¡ ÀÖ´Â °Íó·³ x¿¡ °ªÀ» ÇÒ´çÇÏ°í ÀÖ´Ù. ÀÌ·¸°Ô Çصµ ÄÄÆÄÀÏÇÒ ¶§³ª ¼öÇàÇÒ ¶§ ÀüÇô ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÁö¸¸ x¿¡´Â ÀüÇô ¿¹»óÇÒ ¼ö ¾ø´Â °ªÀÌ µé¾î°¡±â ¶§¹®¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. ±×¸®°í sum(2,4);ÀÇ °æ¿ì¿¡´Â ÀÏ´Ü °è»êÀ» Çϸé 6ÀÌ µÇ°í °á±¹ 6; °ú °°Àº ¼ö½Ä¹®ÀÌ µÇ¾î ÀüÇô ¾µ¸ð ¾ø´Â ¹®ÀåÀÌ µÇ¾î ¹ö¸®´Âµ¥ C¿¡¼­´Â À̸¦ µµ¿ÍÁÖ±â À§ ÇØ void¶õ µ¥ÀÌÅÍ À¯ÇüÀ» Á¦°øÇÏ°í ÀÖ´Ù. Áï ÇÔ¼öÀÇ µ¥ÀÌÅÍ À¯ÇüÀ» ´ÙÀ½°ú °°ÀÌ void·Î ¼±¾ðÇÏ°Ô µÇ¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ void print_hello() { ¦¢ ¦¢ printf("Hello!\n"); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ ÇÔ¼ö´Â °è»ê °á°ú°¡ ¾ø´Ù°í ÇÏ´Â Àǹ̰¡ µÈ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ °è»ê °á°ú¸¦ »ç¿ëÇÏ·Á°í ÇÏ¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ x = print_hello(); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÄÄÆÄÀÏ ¿¡·¯³ª °æ°í ¸Þ½ÃÁö°¡ ¹ß»ýÇÏ°Ô µÇ¾î ¿¡·¯¸¦ ¹æÁöÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ °è»ê °á°ú°¡ ¾ø´Â ÇÔ¼ö(Áï ¼­ºê·çƾ¿¡ ÇØ´çÇÏ´Â °Íµé)´Â ¹Ýµå½Ã void·Î ¼±¾ðÇÏ¿©¾ß ÇÑ´Ù. Áö±Ý±îÁö ¼±¾ðÇÑ main ÇÔ ¼öµµ °è»ê °á°ú°¡ ¾øÀ» ¶§¿¡´Â ´ÙÀ½°ú °°ÀÌ void·Î ¼±¾ðÇÏ´Â °ÍÀÌ Á¤È®ÇÑ Ç¥ÇöÀÌ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ void main() { ¦¢ ¦¢ : ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ void À¯ÇüÀº ¿ª½Ã C¿¡¼­¸¸ º¼ ¼ö Àִ ƯÀÌÇÑ µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ÀÏ¹Ý º¯¼ö¿¡´Â »ç¿ëÇÒ ¼ö ¾ø°í ÇÔ¼ö¿¡¸¸ »ç¿ëµÈ´Ù. ´ÙÀ½Àº void À¯Çü¿¡ °üÇÑ ¿¹ÀÌ´Ù. #include void print_char(char c, int n) { int i; for (i = 1; i <= n; i++) printf(" %c",c); } main() { int n; int i; printf("Input N -> "); scanf("%d",&n); for (i = 1; i <= n; i++) { print_char(' ',n - i); print_char('*',2 * i - 1); putchar('\n'); } for (i = 1; i <= n - 1; i++) { print_char(' ',i); print_char('*',2 * n - 2 * i - 1); putchar('\n'); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Input N -> 10 ³ú * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * void print_star(int n) { int i; for (i = 1; i <= n; i++) printf(" *"); } main() { int i, n; printf("Input N -> "); scanf("%d",&n); for (i = 1; i < n; i++) { print_star(i); printf("%d\n",i); } for (i = n; i > 0; i--) { print_star(i); printf("%d\n",i); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Input N -> 10 ³ú *1 * *2 * * *3 * * * *4 * * * * *5 * * * * * *6 * * * * * * *7 * * * * * * * *8 * * * * * * * * *9 * * * * * * * * * *10 * * * * * * * * *9 * * * * * * * *8 * * * * * * *7 * * * * * *6 * * * * *5 * * * *4 * * *3 * *2 *1 < RETURN ¹® > return ¹®Àº ÇÔ¼ö ³»¿¡¼­ °è»ê °á°ú¸¦ »êÃâÇÏ¿© ÀÚ½ÅÀ» È£ÃâÇÑ ÇÔ¼ö¿¡ µÇµ¹¸®´Â ¿ªÇÒÀ» ÇÏ´Â ¹® ÀåÀ¸·Î ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ return; ¦¢ ¦¢ return (¼ö½Ä); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ return ¹® ´ÙÀ½¿¡´Â º¯¼ö¿Í »ó¼ö´Â ¹°·Ð ¼ö½ÄÀÌ ¿Ã ¼ö ÀÖ´Ù. ¼ö½ÄÀÌ ¿Ã °æ¿ì °ýÈ£·Î ¹­¾î ÁØ´Ù. ±×¸®°í µÇµ¹¸² °ªÀÌ voidÇüÀÎ ÇÔ¼ö¿¡¼­ÀÇ return ¹®Àº ±× ÇÔ¼ö¸¦ ÁߴܽÃÅ°´Â ¿ªÇÒÀ» ÇÑ´Ù. ´ÙÀ½Àº return ¹®ÀÇ ¸î°¡Áö ¿¹ ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ return; /* ´Ü¼øÈ÷ ÇÔ¼ö¸¦ Á¾·áÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù */ ¦¢ ¦¢ return (a + b); /* ¼ö½ÄÀÏ °æ¿ì °ýÈ£·Î ¹­µµ·Ï ÇÑ´Ù */ ¦¢ ¦¢ return (i++); /* i °ªÀ» Çϳª Áõ°¡½ÃŲ ÈÄ °ªÀ» µÇµ¹¸°´Ù */ ¦¢ ¦¢ return (iabs(n) * 2); /* ´Ù¸¥ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© returnÇÒ ¼öµµ ÀÖ´Ù */ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ´ÙÀ½Àº À½·Â 1992³â 1¿ù 1ÀÏÀº ¼ö¿äÀÏÀ̶ó´Â Á¶°ÇÇÏ¿¡ ±× ÀÌÈÄÀÇ ³â, ¿ù, ÀÏÀ» ÀÔ·ÂÇÏ¸é ±× ³¯Â¥ ÀÇ ¿äÀÏÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À¸·Î 1992³â 1¿ù 1ÀÏÀ» ±âÁ¡À¸·Î Áö³ª°£ ³¯ ¼ö¸¦ °è»êÇÏ¸é µÇ´Âµ¥ À±³âÀÌ ÀÖÀ¸¹Ç·Î À̸¦ °°ÀÌ °í·ÁÇÏ¿©¾ß ÇÑ´Ù. À±³âÀº 4ÀÇ ¹è¼öÀÎ ÇØÀε¥ 100ÀÇ ¹è¼ö´Â À±³âÀÌ ¾Æ ´Ï°í ¶Ç 400ÀÇ ¹è¼ö´Â À±³âÀÌ´Ù. °¢ ´Þ¸¶³ª ³¯¼ö°¡ Ʋ¸®¹Ç·Î ±× ´Þ ±îÁöÀÇ ³¯ ¼ö¸¦ °è»êÇØ ÁÖ´Â ÇÔ¼ö¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù. long int compute_days(int y, int m, int d) { /* 1992³â 1¿ù 1ÀÏÀ» ±âÁØÀ¸·Î ÇÑ ³¯¼ö¸¦ °è»ê */ long int ds; int i; ds = (y - 1992) * 365l + mdays(y, m) + d; /* ¿ì¼± À±³âÀ» »©°í °è»ê */ for (i = 1992; i < y; i += 4) /* ±× »çÀÌÀÇ À±³âÀ» ã¾Æ 1¾¿À» ´õÇÔ */ if ((i % 400 == 0) || ((i % 100 != 0) && (i % 4 == 0))) ++ds; return (ds); } void print_day(int d) { switch (d) { case 1: printf("The day is Wednesday.\n"); break; case 2: printf("The day is Thursday.\n"); break; case 3: printf("The day is Friday.\n"); break; case 4: printf("The day is Saturday.\n"); break; case 5: printf("The day is Sunday.\n"); break; case 6: printf("The day is Monday.\n"); break; case 0: printf("The day is Tuesday.\n"); break; } } void main() { int year, mon, day; long int days; printf(" Input Year -> "); scanf("%d",&year); printf("Input Month -> "); scanf("%d",&mon); printf(" Input Day -> "); scanf("%d",&day); if (!day_is(year,mon,day)) printf("Incorrect date!!\n"); else { days = compute_days(year,mon,day); print_day((int)(days % 7)); } } day_is(int y, int m, int d) { /* ³â, ¿ù, ÀÏÀÌ ¿Ã¹Ù¸¥Áö Á¶»çÇÏ´Â ÇÔ¼ö */ int e = 0; if (y < 1992 || m < 1 || m > 12 || d < 1 || d > 31) /* 1992³â ÀÌÀüÀ̳ª ¿ùÀÌ 1 ~ 12 »çÀÌ°¡ ¾Æ´Ï°Å³ª ÀÏÀÌ 1 ~ 31 »çÀÌ°¡ ¾Æ´Ï¸é À߸ø */ return (0); /* °ªÀÌ 1ÀÌ¸é ¿Ã¹Ù¸£¸ç, 0À̸é Ʋ¸² */ if ((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0))) /* À±³âÀÌ °è»ê */ e = 1; switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return (1); case 2: if (d <= 28 + e) /* 2¿ùÀÌ°í Àϼö°¡ 28 + 1(À±³âÀÇ °æ¿ì) º¸´Ù ÀÛÀ¸¸é Á¤»ó */ return (1); else return (0); case 4: case 6: case 9: case 11: if (d <= 30) return (1); else return (0); } } mdays(int y, int m) { /* 1¿ù 1ÀÏÀ» ±âÁØÀ¸·Î ¹Ù·Î Àü¿ù±îÁöÀÇ ³¯¼ö¸¦ °è»ê */ int e = 0; if ((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0))) /* À±³âÀ» °è»ê */ e = 1; switch (m) { case 1: return (0); case 2: return (31); case 3: return (59 + e); case 4: return (90 + e); case 5: return (120 + e); case 6: return (151 + e); case 7: return (181 + e); case 8: return (212 + e); case 9: return (243 + e); case 10: return (273 + e); case 11: return (304 + e); case 12: return (334 + e); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Input Year -> 1995 ³ú Input Month -> 7 ³ú Input Day -> 24 ³ú The day is Monday. ´ÙÀ½Àº °è»ê±â¸¦ ´ÙÀ½°ú °°ÀÌ È®ÀåÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ¨ç °¢ ¼ýÀÚ´Â b, d, o, x·Î ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. b·Î ½ÃÀÛÇϸé ÀÌÁø¼öÀ̸ç d´Â ½ÊÁø¼ö, o´Â 8Áø¼ö, x´Â 16Áø¼öÀÌ´Ù. µû¶ó¼­ -d123 + x34´Â ½ÊÁø¼ö -123 °ú 16Áø¼ö 34ÀÇ ÇÕÀ» ÀǹÌÇÑ´Ù. b, d, o, x°¡ »ý·«µÇ¾úÀ» °æ¿ì¿¡´Â 10Áø¼ö·Î °¡Á¤ÇÑ´Ù. ¨è ¼ýÀÚ¿Í ¿¬»êÀÚ »çÀ̸¦ ³ª µîÀ¸·Î ¶ç¿ï ¼ö ÀÖ´Ù. ¶Ç ¼ýÀÚ ¾Õ¿¡µµ ³ª ÀÌ µé¾î°¥ ¼öµµ ÀÖ´Ù. µû¶ó¼­ -127 * o345¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥¿¡¼­´Â scanf¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ¼ýÀÚ ¾Õ¿¡ b, d, o, x¶ó´Â ¹®ÀÚ°¡ ÀÖÀ» ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ³ª µµ ÀÖÀ» ¼ö Àֱ⠶§¹®ÀÌ´Ù. µû¶ó¼­ ÀÌ °æ¿ì¿¡´Â ÇÑÀÚ¾¿ Àо À̸¦ ¼ýÀÚ·Î º¯È¯ÇÏ´Â °ÍÀÌ ÇÊ¿äÇѵ¥, À̸¦ ÇϳªÀÇ ÇÔ¼ö·Î ¸¸µé¾î »ç¿ëÇϵµ·Ï ÇÏ°Ú´Ù. ±×·±µ¥ ¹®Á¦´Â ÇÑÀÚ¾¿ ¼ýÀÚ°¡ ¾Æ´Ò ¶§±îÁö Àоî À̸¦ º¯È¯Çϱ⠶§¹®¿¡ ³¡ÀÇ ÇÑÀÚ¸¦ ´õ Àоî¾ß º¯È¯ÀÌ °¡´ÉÇÏ´Ù ´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î 17*34¶ó°í ÀÔ·ÂÇÑ °æ¿ì 17* ±îÁö Àоî¾ß '*'°¡ ¼ýÀÚ°¡ ¾Æ´Ï¹Ç·Î '1'°ú '7' À» 17·Î ¸¸µé ¼ö ÀÖ´Ù. À̶§ '*'¸¦ ÀÌ¹Ì ÀÐ¾î ¹ö·È±â ¶§¹®¿¡ À̸¦ ´Ù½Ã »ç¿ëÇÒ ¼ö ¾ø°Ô µÈ´Ù. ÀÌ ÀÇ ÇØ°áÃ¥Àº ¸¶Áö¸·À¸·Î ÀÐÀº °ÍÀ» Ãë¼ÒÇØ ±× ´ÙÀ½¿¡ ´Ù½Ã ÀоîµéÀ̵µ·Ï ÇÏ´Â °ÍÀÌ´Ù. À̸¦ À§ÇÑ ¶óÀ̺귯¸® ÇÔ¼ö·Î ungetc¶ó´Â °ÍÀÌ ÀÖÀ¸¸ç ÀÌ´Â ungetc(c, stdin)À̶õ ÇüÅ·Π»ç¿ëÇÏ¸é µÇ´Âµ¥ c °¡ Ãë¼ÒÇÒ ¹®ÀÚ°¡ µÈ´Ù. ¶Ç xÀÇ y½ÂÀ» °è»êÇÏ¿©¾ß Çϴµ¥ ÀÌ¿¡ ´ëÇÑ ¶óÀ̺귯¸® ÇÔ¼ö·Î pow°¡ ÀÖ´Ù. pow(x, y)´Â xÀÇ y½ÂÀ» °è»êÇÏ´Â °ÍÀε¥ x¿Í y°¡ ¸ðµÎ double À¯ÇüÀ̱⠶§¹®¿¡ ÀÌ·Î º¯È¯ ÇÏ¿© È£ÃâÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. #include /* ungetc(c,stdin) ÇÔ¼ö¸¦ »ç¿ëÇϱâ À§ÇØ ¼±¾ð */ #include /* pow(x,y) ÇÔ¼ö¸¦ »ç¿ëÇϱâ À§ÇØ ¼±¾ð */ long int read_number() { /* ÇϳªÀÇ ¼ýÀÚ¸¦ ÀÐÀ½ */ int base = 10; /* ±âº» Áø¹ýÀº 10Áø¼ö */ long int res = 0l; /* Áö±Ý±îÁö ÀÐÀº ¼ýÀÚ¸¦ ±â¾ï */ int sign = 1; /* ±âº» ºÎÈ£´Â + */ char c; again: while ((c = getchar()) == ' ' || c == '\t'); /* ¿Í Àº ¹«½Ã */ switch (c) { case 'd': break; /* d·Î ½ÃÀÛÇϸé 10Áø¼ö */ case 'b': base = 2; /* b·Î ½ÃÀÛÇϸé 2Áø¼ö */ break; case 'o': base = 8; /* o·Î ½ÃÀÛÇϸé 8Áø¼ö */ break; case 'x': base = 16; /* x·Î ½ÃÀÛÇϸé 16Áø¼ö */ break; case '+': goto again; /* +¸é ºÎÈ£¿¡ º¯È­°¡ ¾øÀ½ */ case '-': sign *= -1; /* -¸é ºÎÈ£°¡ ¹Ù²ñ */ goto again; default : ungetc(c,stdin); /* ´Ù¸¥ °ªÀ̸é ÀÔ·ÂÀ» Ãë¼Ò */ } while ((c = getchar()) && (((base != 16) && (c >= '0') && (c - '0' <= base - 1)) || ((base == 16) && (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')))) /* Áø¹ý¿¡ ¸Â´Â ¼ö°¡ ÀԷµǴ µ¿¾È */ switch (c) { case 'a': /* 16Áø¼ö A */ case 'A': res = res * base + 10l; break; case 'b': /* 16Áø¼ö B */ case 'B': res = res * base + 11l; break; case 'c': /* 16Áø¼ö C */ case 'C': res = res * base + 12l; break; case 'd': /* 16Áø¼ö D */ case 'D': res = res * base + 13l; break; case 'e': /* 16Áø¼ö E */ case 'E': res = res * base + 14l; break; case 'f': /* 16Áø¼ö F */ case 'F': res = res * base + 15l; break; default : res = res * base + c - '0'; /* ±×¿Ü´Â ÀÌ¿Í °°ÀÌ °è»êµÊ */ } ungetc(c,stdin); /* Çϳª ´õ ÀÐÀº °ÍÀ» Ãë¼Ò½ÃÄÑ ´ÙÀ½¿¡ Àеµ·Ï ÇÔ */ return (res * sign); } void skip_last() { /* ¿¡·¯°¡ ¹ß»ýÇßÀ» ¶§ ³ª¸ÓÁö ¹®ÀÚµéÀ» ÀÐ¾î ¹ö¸² */ while (getchar() != '\n'); } void main() { long int x, y; char op; while (1) { printf("--> "); /* ÇÁ·ÒÇÁÆ® */ x = read_number(); /* ù¹ø° Á¤¼ö¸¦ Àоî¹ö¸² */ while ((op = getchar()) == ' ' || op == '\t'); /* ¿¬»êÀÚ³ª ¸í·ÉÀ» ÀÐÀ½ */ if (op == 'q' || op == 'Q') break; y = read_number(); /* µÎ¹ø° Á¤¼ö¸¦ Àоî¹ö¸² */ switch (op) { case '+': printf("%ld\n",x+y); break; case '-': printf("%ld\n",x-y); break; case '*': printf("%ld\n",x*y); break; case '/': printf("%ld\n",x/y); break; case '%': printf("%ld\n",x%y); break; case '^': printf("%.0lf\n",pow((double)x,(double)y)); break; default : printf("Error : Unknown Operator %c\n",op); } skip_last(); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- --> b10101010 * 25 ³ú 4250 --> Q ³ú ¡Ø main¿¡¼­ÀÇ return ¹® ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ main() { ¦¢ ¦¢ return (2); ¦¢ ¦¢ printf("Hello!\n"); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ return ¹®Àº ÀÚ½ÅÀ» ºÎ¸¥ ÇÔ¼ö¿¡°Ô·Î µ¹¾Æ°¡°Ô ¸¸µç´Ù°í ¾ð±ÞÇÑ ¹Ù Àִµ¥, main ÇÔ¼ö ³»¿¡¼­ return ¹®À» »ç¿ëÇÒ °æ¿ì¿¡µµ ´Ù¸¥ return ¹®°ú °°ÀÌ Ã³¸®µÈ´Ù. Áï ÀÚ½ÅÀ» ºÎ¸¥ ÇÔ¼ö¿¡°Ô °è»ê °á°ú¸¦ ³Ñ°ÜÁÖ°í ÀÚ½ÅÀÇ ¼öÇàÀº ³¡³»°Ô µÇ´Âµ¥ mainÀÌ ÇÁ·Î±×·¥ÀÇ ½ÃÀÛÀ̹ǷΠ°á±¹ ÇÁ·Î±×·¥ÀÇ ¼öÇàÀÌ ³¡³ª°Ô µÇ¾î ±× ´ÙÀ½ÀÇ printf ¹®Àº ¼öÇàµÇÁö ¾Ê´Â´Ù. ±×·±µ¥ ¹®Á¦´Â mainÀ» ºÎ¸¥ ÇÔ¼ö°¡ ¾ø´Ù´Â °ÍÀÌ´Ù. ÀÌ´Â ¹Ù·Î OS(Áï, À§ ÇÁ·Î±×·¥À» ¼öÇà½ÃŲ ¿î¿µ ü°è)¿¡°Ô Àü´ÞµÈ´Ù. ¿¹¸¦ µé¾î MSC³ª TCÀÇ °æ¿ì¿¡´Â DOS¿¡ °è»ê °á°ú°¡ Àü´ÞµÇ¸ç Unix´Â Shell¿¡°Ô °è»ê °á°ú°¡ Àü´ÞµÈ´Ù. ¸¶Ä¡ OS°¡ mainÀ» ºÎ¸¥ ÇÔ¼ö¶ó°í »ý°¢ÇÏ¸é µÇ´Âµ¥ ÀÌ OS¿¡°Ô Àü´ÞµÈ °ªÀº OS »ó¿¡¼­ ¾×¼¼½ºÇÏ¿© »ç¿ë ÇÒ ¼ö ÀÖ´Ù. DOSÀÇ °æ¿ì¿¡´Â ¹èÄ¡ È­ÀÏ »ó¿¡¼­ IF ERRORLEVEL == °ª °ú °°Àº ÇüÅ·ΠȮÀÎÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î À§ÀÇ ÇÁ·Î±×·¥ÀÇ ¼öÇàÈ­ÀÏÀÌ test.exe¶ó°í ÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ¹èÄ¡ È­ÀÏÀ» ¸¸µé°í ÀÌ ¸¦ ¼öÇàÇÏ°Ô µÇ¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ @ECHO OFF ¦¢ ¦¢ TEST ¦¢ ¦¢ IF ERRORLEVEL == 2 GOTO PRINT ¦¢ ¦¢ GOTO END ¦¢ ¦¢ :PRINT ¦¢ ¦¢ ECHO The result is 2! ¦¢ ¦¢ :END ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ test.exe°¡ return (2);¸¦ ÅëÇØ 2¸¦ °è»ê °á°ú·Î DOS¿¡ ³Ñ°ÜÁֹǷΠERRORLEVEL == 2´Â ÂüÀÌ µÇ ¾î ´ÙÀ½°ú °°Àº ¼öÇà °á°ú¸¦ ¾ò°Ô µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ The result is 2! ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ main¿¡¼­ÀÇ return ¹®Àº ½ÇÁ¦·Î ¾î¶² °è»ê °á°ú¶ó±â º¸´Ù´Â ÀÌ ÇÁ·Î±×·¥ÀÌ ¾î¶»°Ô ³¡³µ´Â Áö¸¦ ¾Ë·ÁÁÖ´Â ¼º°ÝÀÌ ´õ °­ÇÏ´Ù. ÀϹÝÀûÀ¸·Î 0Àº Á¤»óÀûÀ¸·Î ¼öÇàÀÌ Á¾·áÇÏ¿´À½À» ÀǹÌÇϸç À½¼ö°ªÀÌ ³ª 0º¸´Ù Å« °ªÀº ¼öÇàÀÌ ºñÁ¤»óÀûÀ¸·Î(Áï ¿¡·¯°¡ ¹ß»ýÇß´ÙµçÁö ÇÏ¿©) ³¡³µÀ½À» ÀǹÌÇÏ´Â °æ¿ì°¡ ¸¹´Ù. µû¶ó¼­ ÀÌ °ªÀ» º¸¸é ¹æ±Ý ¼öÇàÇÑ ÇÁ·Î±×·¥ÀÇ »óŸ¦ ¾Ë ¼ö ÀÖÀ¸¹Ç·Î À̸¦ ¹ÙÅÁÀ¸·Î ´Ù¸¥ ÇÁ·Î±×·¥À» ¼öÇàÇÒ °ÍÀÎÁö¸¦ ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. ½ÇÁ¦ ÇÁ·Î±×·¥ »ó¿¡¼­ ÇÁ·Î±×·¥ÀÇ ¼öÇàÀ» Áß´ÜÇÏ°í OS¿¡°Ô µ¹¾Æ°¡°Ô ÇÒ ¶§¿¡´Â exit ¹®À» ´õ ¸¹ÀÌ »ç¿ëÇÑ´Ù. < ÀÎÀÚÀÇ Àü´Þ > ÀÎÀÚÀÇ Àü´ÞÀ̶õ ½ÇÀÎÀÚÀÇ °ªÀÌ Çü½Ä ÀÎÀÚÀÇ °ªÀ¸·Î ¾î¶»°Ô Àü´ÞµÇ´Â°¡ ÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ void swap(int x, int y) { ¦¢ ¦¢ int t; ¦¢ ¦¢ t = x; ¦¢ ¦¢ x = y; ¦¢ ¦¢ y = t; ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ main() { ¦¢ ¦¢ int x = 10; ¦¢ ¦¢ int y = 20; ¦¢ ¦¢ swap(x, y); ¦¢ ¦¢ printf("x = %d, y = %d\n",x,y); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ swap ÇÔ¼ö´Â x¿Í yÀÇ °ªÀ» ¼­·Î ¹Ù²Ù°í ÀÖ´Ù. ±×·¯¸é main ÇÔ¼ö¿¡¼­ swap(x, y)¸¦ È£ÃâÇÏ ¿´À¸´Ï x¿Í yÀÇ °ªÀÌ ¹Ù²î¾î¾ß ÇÒ ÅÙµ¥ À§ ÇÁ·Î±×·¥À» ½ÇÁ¦·Î ¼öÇàÇØ º¸¸é x = 10, y = 20À¸·Î ÀüÇô ¹Ù²îÁö ¾Ê¾ÒÀ½À» ¾Ë ¼ö Àִµ¥ ÀÌÀ¯´Â ¹Ù·Î CÀÇ ÀÎÀÚ Àü´Þ ¹æ¹ý ¶§¹®ÀÌ´Ù. C¿¡¼­´Â °ª¿¡ ÀÇ ÇÑ È£Ãâ(call by value) ¹æ¹ýÀ¸·Î ÀÎÀÚ¸¦ Àü´ÞÇÏ°í ÀÖÀ¸¸ç öÀúÇÏ°Ô °ª¸¸ ÀÎÀÚ·Î Àü´ÞµÈ´Ù. ÀÌ ¾ê ±â´Â main¿¡¼­ swap(x, y);·Î x¿Í y¸¦ ½ÇÀÎÀÚ·Î Á¦°øÇÏ°í ÀÖÁö¸¸ swap(x, y)ÀÇ x, y¿¡ Àü´ÞµÇ´Â °ÍÀº mainÀÇ x, yÀÇ °ª, Áï 10, 20ÀÌ Àü´ÞµÈ´Ù. µû¶ó¼­ À§ÀÇ swap È£ÃâÀº swap(10, 20);°ú ¶È°°Àº Àǹ̸¦ °®°Ô µÈ´Ù. ±×·¯¹Ç·Î ´ç¿¬È÷ swap¿¡¼­ ¾Æ¹«¸® x, yÀÇ °ªÀ» ¹Ù²Ù¾î º¸¾ÒÀÚ mainÀÇ x, yÀÇ °ªÀº ¹Ù²îÁö ¾Ê´Â °ÍÀÌ´Ù(swapÀÇ x, y¿Í mainÀÇ x, y´Â À̸§¸¸ °°Áö ÀüÇô ´Ù¸¥ º¯¼öÀÌ´Ù). °ª¿¡ ÀÇÇÑ È£ÃâÀ̶õ ½ÇÀÎÀÚ¸¦ Àü´ÞÇÒ ¶§ Ç×»ó ±× °ª¸¸À» Àü´ÞÇØ Áشٴ ¶æÀ¸·Î ¸Å°³º¯¼ö°¡ Àü´Þ µÇ´Â °úÁ¤À» º¸´Ù ±í¼÷ÀÌ »ìÆ캸¸é ¾î¶² ÇÔ¼ö°¡ È£ÃâµÇ±â Àü¿¡ ¸Å°³º¯¼öÀÇ °ªµéÀº stackÀ̶ó´Â ÄÄÇ»ÅÍ ³»ºÎ ±â¾ïÀå¼Ò¿¡ ÀúÀåµÈÈÄ È£ÃâµÈ ÇÔ¼ö¿¡¼­´Â ´Ù½Ã ±× °ªÀ» ²¨³» »ç¿ëÇÏ´Â ¹æ½ÄÀ» ÃëÇÏ°í ÀÖ´Ù. IBM-PC¿¡¼­´Â ³»ºÎ ½ºÅÃÀÌ Á¤ÇØÁ®ÀÖ¾î ÁÖ·Î ÇÔ¼öÀÇ È£Ãâ ¹× ¸Å°³º¯¼ö Àü´Þ¿¡ ¾²ÀÌ°í ÀÖ ´Ù. ÀÌ·¯ÇÑ ½ºÅÃÀº À̸¥¹Ù LIFO(Last In First Out)ÀÇ ±¸Á¶¸¦ °¡Áö°í ÀÖ¾î °¡Àå ÃÖ±Ù¿¡ ÀúÀåµÈ °ªÀÌ ¹Ù·Î ²¨³»Áú ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Ù. ¡Ø ÇÔ¼öÀÇ ÀÎÀÚ ¼ö¿¡ ´ëÇÏ¿© ÇÔ¼öÀÇ ÀÎÀÚ ¼ö´Â °íÁ¤µÇ¾î ÀÖ´Â°Ô º¸ÅëÀÌ´Ù. ±×¸®°í ±× ÀÎÀÚ ¼ö¿¡ ¸Â´Â ½ÇÀÎÀÚ¸¦ ÇÔ¼ö È£Ãâ½Ã Á¦°øÇÏ¿©¾ß ÇÑ´Ù. ±×·±µ¥ C¿¡¼­´Â ÇÔ¼öÀÇ ÀÎÀÚ¼ö º¸´Ù ÀûÀº ½ÇÀÎÀÚ¸¦ Á¦°øÇϰųª ´õ ¸¹Àº ½ÇÀÎÀÚ ¸¦ Á¦°øÇصµ ÄÄÆÄÀÏÇÒ ¶§ ÀüÇô ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì, ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ void func(int x, int y) { ¦¢ ¦¢ printf("x = %d, y = %d\n",x,y); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ÇÔ¼ö¸¦ »ç¿ëÇÏ·Á¸é int À¯ÇüÀÇ ÀÎÀÚ¸¦ 2°³ Á¦°øÇÏ¿©¾ß ÇÑ´Ù. ±×·±µ¥ ¸¸¾à func(1,2,3)À¸·Î 3 °³¸¦ »ç¿ëÇÏ¸é ºÐ¸íÈ÷ À߸øµÈ °ÍÀÌÁö¸¸ À̸¦ ½ÇÁ¦·Î Çغ¸¸é ÄÄÆÄÀϽóª ¼öÇà½Ã ÀüÇô ¿¡·¯°¡ ¹ß»ý ÇÏÁö ¾ÊÀ½À» ¾Ë ¼ö ÀÖ´Ù. ±×¸®°í x = 1, y = 2¶õ Ãâ·ÂÀ» ¾ò°Ô µÈ´Ù. Áï ¾Ë¾Æ¼­ ÇÊ¿äÇÑ ¸¸Å­ °¡Á® °£ °ÍÀÌ´Ù. ±×·¯¸é func(1)°ú °°ÀÌ ¸ðÀÚ¶ó°Ô È£ÃâÇÏ¸é ¾î¶»°Ô µÇ°Ú´Â°¡? ¿ª½Ã ÀÌ °æ¿ì¿¡µµ ÄÄÆÄ ÀϽô ÀüÇô ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ±×·±µ¥ ¼öÇà½Ã¿¡´Â ´ÙÀ½°ú °°ÀÌ ¾û¶×ÇÑ °á°ú°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ x = 1, y = 0 ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ´Â func¿¡¼­ ¹«Á¶°Ç µÎ °³ÀÇ int À¯ÇüÀÇ ÀÎÀÚ°¡ ÇÊ¿äÇϹǷΠÀ̸¦ »ç¿ëÇÏ·Á°í ½ÃµµÇؼ­ ù¹ø° ´Â Á¦´ë·Î »ç¿ëÇÏÁö¸¸ µÎ¹ø°´Â ¾û¶×ÇÑ °÷ÀÇ °ÍÀ» »ç¿ëÇϱ⠶§¹®ÀÌ´Ù. ƯÈ÷ ´ÙÀ½°ú °°ÀÌ ÇÔ¼ö È£ Ãâ½Ã ÀÎÀÚ¸¦ °ýÈ£·Î µÑ·¯½Î°Ô µÇ¸é ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ func(1,(2,3)); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ù¹ø° ','´Â ÀÎÀÚ¸¦ ±¸ºÐÇÏ´Â ±âÈ£·Î ÀνĵÇÁö¸¸ µÎ¹ø° ÄÞ¸¶´Â ÄÞ¸¶ ¿¬»êÀÚ·Î ÀνĵȴÙ. µû¶ó ¼­ ÄÞ¸¶ ¿¬»êÀÚ¸¦ ¸ÕÀú °è»êÇϱ⠶§¹®¿¡(ÀÌÀÇ °è»ê °á°ú´Â ¹«Á¶°Ç ¿À¸¥ÂÊÀÌ´Ù) ´ÙÀ½°ú °°ÀÌ È£Ãâ ÇÑ °Í°ú °°Àº Àǹ̸¦ °®°Ô µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ func(1,3); ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÎÀÚ·Î º¹ÀâÇÑ ¼ö½ÄÀ» »ç¿ëÇÒ °æ¿ì °ýÈ£¸¦ »ç¿ëÇÏ´Â ¼ö°¡ ¸¹Àºµ¥ À§¿Í °°Àº ½Ç¼ö·Î ´ÙÀ½ ÀÎÀÚ±î Áö °ýÈ£·Î µÑ·¯½Ò ¼ö ÀÖ´Ù. ÀÌ °æ¿ì À߸øµÈ °á°ú¸¦ ¾ò°Ô µÇ¹Ç·Î ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. < º¯¼öÀÇ ¸Þ¸ð¸® À¯Çü > ¸Þ¸ð¸® À¯ÇüÀº º¯¼öÀÇ µ¿ÀÛ ¹üÀ§¿Í Á¸¼Ó ±â°£¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù. º¯¼öÀÇ µ¿ÀÛ ¹üÀ§¶õ ±× º¯¼ö¸¦ ÇÁ·Î±×·¥ÀÇ ¾î´À ºÎºÐ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °¡¿¡ ´ëÇÑ °ÍÀ¸·Î, ÇÔ¼ö ¾È¿¡¼­ Á¤ÀÇµÈ º¯¼öµéÀº ÀڽŠÀÌ Á¤ÀÇµÈ ÇÔ¼ö ³»¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î ±× ÇÔ¼ö°¡ µ¿ÀÛ ¹üÀ§°¡ µÇ¸ç, ¸¶Âù°¡Áö·Î ºí·° ¾È ¿¡¼­ Á¤ÀÇµÈ º¯¼öµéÀº ±× ºí·°ÀÌ µ¿ÀÛ ¹üÀ§°¡ µÈ´Ù. Á¸¼Ó ±â°£À̶õ ±× º¯¼ö¸¦ ¾ó¸¶³ª ¿À·¡ »ç¿ë ÇÒ ¼ö Àִ°¡ ÇÏ´Â °ÍÀ¸·Î, ÇÔ¼ö ¾È¿¡¼­ Á¤ÀÇµÈ º¯¼öµéÀº ±× ÇÔ¼ö¸¦ È£ÃâÇؼ­ ÇÔ¼ö ¾ÈÀÇ ÇÁ·Î±× ·¥À» ¼öÇàÇÒ ¶§¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î Á¸¼Ó ±â°£ÀÌ ÇÔ¼ö¿Í °°´Ù°í ÇÒ ¼ö ÀÖ´Ù. ©ç auto ¸Þ¸ð¸® À¯Çü auto ¸Þ¸ð¸® À¯ÇüÀº Áö±Ý±îÁö »ç¿ëÇß´ø º¯¼öµéÀÇ ¸Þ¸ð¸® À¯ÇüÀ» ÀǹÌÇÑ´Ù. µû¶ó¼­ ¿ø·¡´Â ´ÙÀ½ °ú °°ÀÌ ¼±¾ðÇÏ¿©¾ß Çϴµ¥, ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ main() { ¦¢ ¦¢ auto int i; /* auto ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀ» Áö¿ª º¯¼ö¶ó°íµµ ÇÑ´Ù */ ¦¢ ¦¢ auto char c; ¦¢ ¦¢ : ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ auto¸¦ »ý·«ÇÑ °ÍÀÌ´Ù(½ÇÁ¦·Î »ý·«Çؼ­ ´õ ¸¹ÀÌ »ç¿ëÇÑ´Ù). auto ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº ¿ì¼± µ¿ÀÛ ¹üÀ§°¡ ÀÚ½ÅÀÌ ¼±¾ðµÈ ÇÔ¼ö³ª ºí·°ÀÌ µÈ´Ù. ¹Ý¸é¿¡ Á¸¼Ó ±â°£Àº ÇÔ¼ö ¾È¿¡ Á¤ÀÇµÈ º¯¼öµéÀº ±× ÇÔ¼ö ¾È¿¡ Á¦¾î°¡ ÀÖ´Â µ¿¾È, Áï ±× ÇÔ¼öÀÇ ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â µ¿¾ÈÀÌ µÈ´Ù. ±×¸®°í ±× ÇÔ¼ö ÀÇ ¼öÇàÀÌ ³¡³ª°Ô µÇ¸é º¯¼öµéÀº »ç¶óÁö°Ô µÈ´Ù. ¸¶Âù°¡Áö·Î ºí·° ¾È¿¡ ¼±¾ðµÈ º¯¼öµéÀº ±× ºí·° ¾È¿¡ Á¦¾î°¡ ÀÖ´Â(±× ºí·° ³»ÀÇ ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â) µ¿¾È »ì¾ÆÀÖ°Ô µÇ¸ç ºí·°¿¡¼­ Á¦¾î°¡ ¶°³ª ¸é, Áï ºí·° ¹ÛÀÇ ÇÁ·Î±×·¥À» ¼öÇàÇÏ°Ô µÇ¸é »ç¶óÁö°Ô µÈ´Ù. auto º¯¼öÀÇ Æ¯Â¡Àº ÇÁ·Î±×·¥ÀÌ ÄÄÆÄÀ쵃 ¶§ ±â¾ïÀå¼Ò°¡ ¸¸µé¾îÁö´Â °ÍÀÌ ¾Æ´Ï°í ÇÁ·Î±×·¥ ½ÇÇà µµÁß¿¡ ±× º¯¼ö°¡ ¼±¾ðµÈ ºí·°À̳ª ÇÔ¼ö°¡ ½ÃÀÛµÉ ¶§ ±â¾ï Àå¼Ò°¡ ÇÒ´ç µÇ¾ú´Ù°¡ ±× ºí·°À̳ª ÇÔ ¼ö¸¦ ¶°³¯ ¶§´Â ÀÚµ¿À¸·Î ¸Þ¸ð¸®¿¡¼­ Á¦°ÅµÈ´Ù. ©è extern ¸Þ¸ð¸® À¯Çü extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº ÇÔ¼ö ¾ÈÀÌ ¾Æ´Ñ ÇÔ¼ö ¹Ù±ùÂÊ¿¡ Á¤ÀÇµÇ¸ç ¸Þ¸ð¸® À¯ÇüÀÌ ¾ø´Â º¯ ¼öµéÀº ¸ðµÎ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÌ´Ù. extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÇ µ¿ÀÛ ¹üÀ§´Â ÀÚ½ÅÀÌ Á¤ÀÇµÈ À§Ä¡ºÎÅÍ ÇÁ·Î±×·¥ÀÇ ³¡±îÁö°¡ µÈ´Ù. ´ÙÀ½Àº °¢ extern ¸Þ¸ð¸® À¯Çü º¯¼öÀÇ µ¿ÀÛ ¹üÀ§¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 100; -------------------------------------------+ ¦¢ ¦¢ char c = 'A'; | ¦¢ ¦¢ | ¦¢ ¦¢ main() { | ¦¢ ¦¢ int j = i; /* i¸¦ »ç¿ë */ | ¦¢ ¦¢ char d = 'f'; | ¦¢ ¦¢ d += c - 'e'; /* c¸¦ »ç¿ë */ | i¿Í cÀÇ µ¿ÀÛ ¹üÀ§ ¦¢ ¦¢ proc1(); | ¦¢ ¦¢ printf("j = %d, d = %c\n",j,d); | ¦¢ ¦¢ } | ¦¢ ¦¢ | ¦¢ ¦¢ int k = 123; ------------------+ | ¦¢ ¦¢ | | ¦¢ ¦¢ proc1() { | kÀÇ µ¿ÀÛ ¹üÀ§ | ¦¢ ¦¢ int l = k; /* k¸¦ »ç¿ë */ | | ¦¢ ¦¢ printf("l = %d\n",l); | | ¦¢ ¦¢ } ---------------------------+ -----------------------+ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¹Ý¸é Áß°£¿¡ ¼±¾ðµÈ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀ» ±× ¾Õ¿¡¼­µµ »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌ °æ¿ì¿¡´Â »ç¿ëÇϱâ Àü¿¡ º¯¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ ¼±¾ðÀº Áö±Ý±îÁöÀÇ º¯¼öÀÇ Á¤ÀÇ¿Í´Â ´Ù¸¥ °Í À¸·Î, º¯¼ö¸¦ ¼±¾ðÇÑ °æ¿ì¿¡´Â extern º¯¼ö¸¦ ¾îµð¿¡ Á¤ÀÇÇÏ¿´°Ç Àüü ÇÁ·Î±×·¥ÀÌ µ¿ÀÛ ¹üÀ§°¡ µÉ ¼ö ÀÖ´Ù. ±×·¡¼­ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀ» Àü¿ª º¯¼ö¶ó°í ºÎ¸¥´Ù. º¯¼ö ¼±¾ð¸¸ Çϸé ÇÁ·Î±× ·¥ÀÇ ¾î´À ºÎºÐ¿¡¼­µµ »ç¿ëÇÒ ¼ö°¡ ÀÖ°í, ½ÉÁö¾î´Â ´Ù¸¥ È­ÀÏÀÇ ÇÁ·Î±×·¥¿¡¼­µµ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÇ Á¸¼Ó ±â°£Àº Àüü ÇÁ·Î±×·¥ÀÇ ¼öÇà½Ã°£ÀÌ µÈ´Ù. Áï, ÇÁ·Î±×·¥ÀÌ ¼öÇàµÇ´Â µ¿¾È(ÇÁ·Î±×·¥ÀÇ ¾î´À ºÎºÐÀ» ¼öÇàÇÏ°Ç) ÀÌ º¯¼öµéÀº »ì¾Æ À־, ÀÌµé º¯¼öÀÇ °ªÀ» »ç ¿ëÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº °¢ ÇÔ¼ö¿¡¼­ °øÅëÀûÀ¸·Î »ç¿ëÇÏ´Â º¯¼öµé·Î »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î ¸ðµç ÇÔ¼ö¿¡¼­ »ç¿ëÇؾßÇÒ µ¥ÀÌÅÍ°¡ ÀÖÀ» °æ¿ì À̸¦ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© »ç¿ëÇÏ¸é ¸Å¿ì È¿À²ÀûÀÎ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ¶Ç ÇÔ¼ö¿¡¼­´Â ÀÚ½ÅÀ» ºÎ ¸¥ ÇÔ¼öÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÒ ¼ö ¾øÀ¸¹Ç·Î ´Ù¸¥ ÇÔ¼öµéÀÌ º¯°æÇØ¾ß ÇÒ µ¥ÀÌÅ͸¦ extern ¸Þ¸ð¸® À¯ ÇüÀ¸·Î »ç¿ëÇϸé ÇÔ¼öµéÀÌ À̸¦ ½±°Ô º¯°æÇÒ ¼ö ÀÖ´Ù. º¯¼öÀÇ ¼±¾ðÀº ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ extern µ¥ÀÌÅÍ À¯Çü º¯¼ö À̸§; ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¸Ç ¾Õ¿¡ ¹Ýµå½Ã externÀ̶ó°í ºÙ¿©¾ß ÇÏ¸ç ³ª¸ÓÁö´Â º¯¼öÀÇ Á¤ÀÇ¿Í °°´Ù. º¯¼ö¸¦ extern ÇüÀ¸·Î ¼±¾ðÇÏ´Â °ÍÀº ±× º¯¼ö°¡ ´Ù¸¥ È­ÀÏÀ̳ª ºí·° ¶Ç´Â ÇÔ¼ö¿¡ Á¸ÀçÇÑ´Ù´Â °Í À» ÄÄÆÄÀÏ·¯¿¡°Ô ¾Ë·Á¼­ ÇöÀçÀÇ È­ÀÏÀ̳ª ºí·° ¶Ç´Â ÇÔ¼ö¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ main() { ---------------------------------+ ¦¢ ¦¢ extern int count; | ¦¢ ¦¢ int i; | ¦¢ ¦¢ i = count - 5; | ¦¢ ¦¢ ++count; | ¦¢ ¦¢ f1(); | ¦¢ ¦¢ printf("i = %d, count = %d\n",i,count); | count º¯¼öÀÇ µ¿ÀÛ ¹üÀ§ ¦¢ ¦¢ } | ¦¢ ¦¢ | ¦¢ ¦¢ int count = 5; | ¦¢ ¦¢ f1() { | ¦¢ ¦¢ ++count; | ¦¢ ¦¢ } ----------------------------------------+ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ ÇÁ·Î±×·¥¿¡¼­ ´ÙÀ½°ú °°ÀÌ main ¾Õ¿¡ count¸¦ Á¤ÀÇÇÏ¸é º¯¼ö ¼±¾ðÀ» ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int count = 5; ----------------------------+ ¦¢ ¦¢ main() { | ¦¢ ¦¢ int i; | ¦¢ ¦¢ i = count - 5; | ¦¢ ¦¢ ++count; | ¦¢ ¦¢ f1(); | ¦¢ ¦¢ printf("i = %d, count = %d\n",i,count); | ¦¢ ¦¢ } | count º¯¼öÀÇ µ¿ÀÛ ¹üÀ§ ¦¢ ¦¢ | ¦¢ ¦¢ f1() { | ¦¢ ¦¢ ++count; | ¦¢ ¦¢ } ----------------------------------------+ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¹Ý¸é¿¡ ¹Ýµå½Ã º¯¼ö ¼±¾ðÀ» Çؾ߸¸ ÇÏ´Â °æ¿ì°¡ Àִµ¥ ÀÌ´Â »ç¿ëÇÏ°íÀÚ ÇÏ´Â º¯¼ö°¡ ´Ù¸¥ È­ÀÏ ¿¡ Á¤ÀǵǾî ÀÖ´Â °æ¿ìÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ /* main.c */ ¦¢ ¦¢ main() { ¦¢ ¦¢ extern int count; -------------------------------+ ¦¢ ¦¢ int i = 5; | ¦¢ ¦¢ f1(); | º¯¼ö ¼±¾ð¿¡ µû¶ó »õ·Î »ý±ä ¦¢ ¦¢ printf("i = %d, count = %d\n",i,count); | countÀÇ µ¿ÀÛ ¹üÀ§ ¦¢ ¦¢ } -----------------------------------------------+ ¦¢ ¦¢ ¦¢ ¦¢ /* f1.c */ ¦¢ ¦¢ int count = 10; -----+ ¦¢ ¦¢ f1() { | countÀÇ ¿ø·¡ µ¿ÀÛ ¹üÀ§ ¦¢ ¦¢ ++count; | ¦¢ ¦¢ } ------------------+ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ count°¡ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öÀ̱⠶§¹®¿¡ À§¿Ü °°ÀÌ º¯¼ö¸¦ ¼±¾ðÇϸé main¿¡¼­µµ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ½ÇÁ¦·Î º¯¼öÀÇ ¼±¾ðÀº À§¿Í °°ÀÌ ÁÖ·Î ´Ù¸¥ È­ÀÏ¿¡ Á¤ÀÇµÈ º¯¼ö¸¦ »ç¿ëÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù. ±×·±µ¥ º¯¼ö ¼±¾ð½ÃÀÇ µ¥ÀÌÅÍ À¯Çü°ú ½ÇÁ¦ Á¤ÀÇ ¶§ÀÇ µ¥ÀÌÅÍ À¯ÇüÀÌ ´Ù¸£¸é ¾î¶»°Ô µÇ´Â°¡? ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ main() { /* main.c */ ¦¢ ¦¢ extern int count; ¦¢ ¦¢ extern char data; ¦¢ ¦¢ int i = count; ¦¢ ¦¢ char c = data; ¦¢ ¦¢ f1(); ¦¢ ¦¢ printf("i = %d, c = %c\n",i,c); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ char count = 'A'; /* f1.c */ ¦¢ ¦¢ int data = 300; ¦¢ ¦¢ f1() { ¦¢ ¦¢ ++count; ¦¢ ¦¢ ++data; ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ count´Â char À¯ÇüÀ¸·Î, data´Â int À¯ÇüÀ¸·Î Á¤ÀǵǾî ÀÖ´Ù. ±×·±µ¥ main¿¡¼­´Â À̵éÀ» count´Â int·Î, data´Â char·Î ¼±¾ðÇÏ¿© »ç¿ëÇÏ°í Àִµ¥, ÀÌ·¸´Ù ÇÏ´õ¶óµµ ÄÄÆÄÀϽÿ¡´Â ¾Æ¹«·± ¿¡·¯°¡ ³ª Áö ¾Ê´Â´Ù. ÀÌ´Â ÄÄÆÄÀÏ·¯°¡ öÀúÇÏ°Ô È­ÀÏ ´ÜÀ§·Î ÄÄÆÄÀÏÇϱ⠶§¹®Àε¥ main.c¸¦ ÄÄÆÄÀÏÇÒ ¶§¿¡ ´Â »ç¿ëÀÚ°¡ ¼±¾ðÇÑ °ÍÀ» ±×´ë·Î ¹Ï°í ÄÄÆÄÀÏÇϸç f1.c¿¡¼­´Â Á¤ÀÇÇÑ ±×´ë·Î ÄÄÆÄÀÏÇϱ⠶§¹®ÀÌ´Ù (À̶§ Àü¿¡ ÄÄÆÄÀÏÇÑ °ÍÀº ÀØ¾î ¹ö¸°´Ù). ±×¸®°í ¸µÅ©½Ã¿¡µµ ¸µÄ¿°¡ ¾Æ´Â °ÍÀº ¿À·ÎÁö À̸§ »ÓÀÌ ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ¼öÇà½Ã ¾Æ¹«·± ¿¡·¯ ¸Þ½ÃÁö ¾øÀÌ À߸øµÈ °á°ú°¡ ³ª¿À°Ô µÇ¹Ç·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ i = 11329, c = , ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ externÀ¸·Î ¼±¾ðÇÒ º¯¼ö°¡ ¸¹Àº °æ¿ì¿¡´Â À§¿Í °°Àº ½Ç¼ö¸¦ ÇÒ ¼ö Àִµ¥ À̸¦ ¹æÁöÇÏ´Â ¹æ¹ýÀº º°µµÀÇ header È­ÀÏÀ» ¸¸µé¾î À̸¦ include ÇÏ´Â °ÍÀÌ´Ù. ±×¸®°í ´ÙÀ½°ú °°ÀÌ ÀÌÁßÀ¸·Î º¯¼ö¸¦ ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ extern int data /* externÀ¸·Î º¯¼ö¸¦ ¼±¾ðÇÏ¿´´Ù°í Çؼ­ ¸Þ¸ð¸®°¡ ÇÒ´ç */ ¦¢ ¦¢ extern char count; /* µÇ´Â °ÍÀº ¾Æ´Ï°í ÄÄÆÄÀÏ·¯¿¡°Ô ÀÌ·¯ÇÑ º¯¼ö°¡ ´Ù¸¥ */ ¦¢ ¦¢ /* ÆÄÀÏ ³»¿¡ Á¸ÀçÇÏ°í ÀÖÀ½À» ¾Ë·ÁÁÖ´Â °Í¿¡ ºÒ°úÇÏ´Ù */ ¦¢ ¦¢ main() { ¦¢ ¦¢ extern int data; ¦¢ ¦¢ : ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ f1() { ¦¢ ¦¢ extern int count; ¦¢ ¦¢ : ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ data¿Í count¸¦ Àü¿ªÀûÀ¸·Î ¼±¾ðÇØ ³õ°í main°ú f1 ³»¿¡¼­ ¶Ç ¼±¾ðÇÏ°í ÀÖ´Ù. ÀÌ¿Í °°ÀÌ Áߺ¹µÇ °Ô ¼±¾ðÇÏ°Ô µÇ¸é ÀÌ µÑÀÇ ¼±¾ðÀÌ(Áï µ¥ÀÌÅÍ À¯ÇüÀÌ) °°À» ¶§¿¡´Â ±×³É ¹«½ÃÇÏ°í Áö³ª °¡Áö¸¸ ´Ù ¸¦ °æ¿ì¿¡´Â ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. µû¶ó¼­ À§ÀÇ ÇÁ·Î±×·¥ÀÇ °æ¿ì data´Â µÎ °³ÀÇ ¼±¾ðÀÌ °°±â ¶§¹®¿¡ º° ¹®Á¦°¡ ¾øÁö¸¸ countÀÇ °æ¿ì¿¡´Â Àü¿ªÀûÀ¸·Î char À¯ÇüÀ¸·Î ¼±¾ðÇÏ°í f1¿¡¼­´Â À̸¦ ´Ù½Ã int·Î ¼±¾ðÇ߱⠶§¹®¿¡ ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ©é static ¸Þ¸ð¸® À¯Çü static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº ¸Þ¸ð¸® À¯Çü¾Õ¿¡ staticÀ̶ó°í ¼±¾ðµÈ º¯¼öµéÀ» ÀǹÌÇϸç Áö¿ª static ¸Þ¸ð¸® À¯Çü°ú Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀÌ ÀÖ´Ù. Áö¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀ̶õ auto ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµé¿¡ auto´ë½Å staticÀÌ ºÙÀº º¯ ¼öµéÀ» ÀǹÌÇϴµ¥, Áö¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀ̳ª auto À¯ÇüÀÇ º¯¼öµéÀ̳ª º°·Î Â÷ÀÌ°¡ ¾ø´Â °Íó·³ º¸ÀδÙ. ½ÇÁ¦·Îµµ Áö¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÇ µ¿ÀÛ ¹üÀ§´Â auto º¯¼öÀÇ °æ ¿ì¿Í °°ÀÌ ÀÚ½ÅÀÌ Á¤ÀÇµÈ ÇÔ¼ö³ª ºí·° ³»¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Á¸¼Ó ±â°£ÀÇ °æ¿ì Áö¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº extern º¯¼ö¿Í °°´Ù. Áï Àüü ÇÁ·Î±×·¥ÀÌ ¼öÇà µÇ´Â µ¿¾È °è¼ÓÇؼ­ »ì¾Æ ÀÖÀ¸¸é¼­ ÀÚ½ÅÀÇ °ªÀ» À¯ÁöÇÏ°Ô µÈ´Ù. ´ÙÀ½Àº ÀÌÀÇ ÇÑ ¿¹ÀÌ´Ù. void test() { static int s_count; /* static ¸Þ¸ð¸® À¯ÇüÀº ÃʱâÈ­½ÃÅ°Áö ¾Ê¾ÒÀ» °æ¿ì */ int a_count = 0; /* 0ÀÇ °ªÀ» °¡Áø´Ù */ s_count++; a_count++; printf("static count = %2d\tauto count = %d\n",s_count,a_count); } main() { int i; for (i = 0; i < 10; i++) test(); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- static count = 1 auto count = 1 static count = 2 auto count = 1 static count = 3 auto count = 1 static count = 4 auto count = 1 static count = 5 auto count = 1 static count = 6 auto count = 1 static count = 7 auto count = 1 static count = 8 auto count = 1 static count = 9 auto count = 1 static count = 10 auto count = 1 À§ ÇÁ·Î±×·¥¿¡¼­´Â test¶õ ÇÔ¼ö¸¦ 10¹ø ºÎ¸£°í ÀÖ´Ù. test ³»¿¡´Â static º¯¼ö s_count¿Í auto º¯ ¼ö a_count°¡ Á¤ÀÇ µÇ¾î Àִµ¥ À̵éÀÇ °ªÀ» Çϳª¾¿ Áõ°¡½ÃŲ ÈÄ Ãâ·ÂÇÏ°í ÀÖ´Ù. ±×¸®°í ³¡³ª°Ô µÇ´Âµ¥, ÀÌ ¶§ auto º¯¼öÀÎ a_count´Â »ç¶óÁöÁö¸¸ static º¯¼öÀÎ s_count´Â »ç¶óÁöÁö ¾Ê°í ÀÚ½ÅÀÇ °ªÀ» °®°í ÀÖ°Ô µÈ´Ù. Áï µ¿ÀÛ ¹üÀ§´Â auto¿Í °°À¸³ª Á¸¼Ó ±â°£Àº extern°ú °°´Ù. static º¯¼öµéÀº ÇÁ·Î±×·¥ÀÌ ½ÃÀÛµÉ ´ç½Ã Çѹø¸¸ ÃʱâÈ­ µÇ¸ç ÇÑ ¹ø °ªÀ» °¡Áö¸é ±× °ªÀ» ÇÁ·Î±× ·¥ÀÌ ³¡³¯ ¶§±îÁö °®°Ô µÇ¹Ç·Î extern º¯¼ö¿Í °°ÀÌ ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ°í ÀÖ°Ô µÈ´Ù. ÇÔ¼ö ³»¿¡ ÀÖÀ¸¸é¼­ ÀÚ½ÅÀÇ °ªÀ» °è¼Ó À¯ÁöÇؾßÇÒ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ì¿¡ static º¯¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµé°ú °°ÀÌ ÇÔ¼ö ¹Ù±ùÂÊ¿¡ Á¤ÀÇµÈ º¯¼öµé °¡¿îµ¥ ¸Þ¸ð¸® À¯ÇüÀÌ staticÀ̶ó°í Á¤ÀÇµÈ º¯¼öµéÀ» ÀǹÌÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ int i = 10; ¦¢ ¦¢ static int j = 3; ---------------------------------+ ¦¢ ¦¢ | ¦¢ ¦¢ main() { | ¦¢ ¦¢ int k = 1; | ¦¢ ¦¢ printf("i = %d, j = %d, k = %d\n",i,j,k); | ¦¢ ¦¢ proc1(); | ¦¢ ¦¢ } | jÀÇ µ¿ÀÛ ¹üÀ§ ¦¢ ¦¢ | ¦¢ ¦¢ char c = 'A'; | ¦¢ ¦¢ static char d = 'B'; ---------+ | ¦¢ ¦¢ | | ¦¢ ¦¢ proc1() { | dÀÇ µ¿ÀÛ ¹üÀ§ | ¦¢ ¦¢ printf("%c%c\n",c,d); | | ¦¢ ¦¢ } ¡ç------------------------+--------------------+ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº static¸¸ ¾øÀ¸¸é ¹Ù·Î extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÌ´Ù. ±× ·¡¼­ extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµé°ú À¯»çÇÑ ¼ºÁúµµ °®°í Àִµ¥ Á¸¼Ó ±â°£ÀÌ extern ¸Þ¸ð¸® À¯ ÇüÀÇ º¯¼öµé°ú °°´Ù. Áï ÇÁ·Î±×·¥ÀÌ ¼öÇàµÇ´Â µ¿¾È °è¼ÓÇؼ­ ÀÚ½ÅÀÇ °ªÀ» °®°í ÀÖ°Ô µÈ´Ù. ±×·¯³ª extern ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀÌ º¯¼ö ¼±¾ðÀ̶ó´Â °Í¸¸ Çϸé ÇÁ·Î±×·¥ÀÇ ¾î´À ºÎºÐ¿¡¼­µµ À̸¦ »ç ¿ëÇÒ ¼ö ÀÖ¾ú´Âµ¥ ¹ÝÇØ, ÀÌ Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼öµéÀº öÀúÇÏ°Ô ÀÚ½ÅÀÌ Á¤ÀÇµÈ À§Ä¡ºÎ ÅÍ ±× È­ÀÏÀÇ ³¡±îÁö°¡ ÀÚ½ÅÀÇ µ¿ÀÛ ¹üÀ§°¡ µÈ´Ù. µû¶ó¼­ ±× ¿ÜÀÇ ºÎºÐ¿¡¼­´Â º¯¼ö ¼±¾ðÀ» Çصµ ÀÌ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀº º¯¼ö¸¦ ´Ù¸¥ ÇÔ¼ö³ª ÇÁ·Î±×·¥À¸·ÎºÎÅÍ °¨Ãß´Â ¿ªÇÒÀ» ÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ /* main.c */ ¦¢ ¦¢ main() { ¦¢ ¦¢ extern int count; ¦¢ ¦¢ int i = 5; ¦¢ ¦¢ f1(); ¦¢ ¦¢ printf("i = %d, count = %d\n",i,count); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ /* f1.c */ ¦¢ ¦¢ static int count = 10; ¦¢ ¦¢ f1() { ¦¢ ¦¢ ++count; ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¾Õ¿¡¼­ ¾ð±ÞÇÑ ¹Ù¿Í °°ÀÌ countº¯¼ö´Â f1.c ³»¿¡¼­¸¸ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ main.c¿¡¼­ extern À¸·Î ¼±¾ðÇÑ countº¯¼ö´Â ¾ø´Â °ÍÀÌ µÇ¸ç(f1.cÀÇ count º¯¼ö´Â ´Ù¸¥ °÷¿¡¼­´Â »ç¿ëÇÏÁö ¸øÇϹǷΠ¾ø´Â °Í°ú ¸¶Âù°¡ÁöÀÌ´Ù) ¸µÅ©½Ã ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. À§¿¡¼­¿Í °°ÀÌ static À¸·Î ¼±¾ðÇÑ °æ¿ì ÇöÀç È­ÀÏ¿¡¼­¸¸ ±× º¯¼öÀÇ »ç¿ëÀ» °¡´ÉÇÏ°Ô ¸¸µé¾î ÁÖ ¾î °°Àº À̸§ÀÇ º¯¼ö°¡ ´Ù¸¥ È­ÀÏ¿¡ Á¸ÀçÇÏ¿©µµ °£¼·À» ¹ÞÁö ¾Ê´Â´Ù. ©é register ¸Þ¸ð¸® À¯Çü ÄÄÇ»ÅÍÀÇ CPU ¾È¿¡´Â ·¹Áö½ºÅͶó´Â ±â¾ïÀå¼Ò°¡ Á¸ÀçÇÑ´Ù. ÀÌ·¯ÇÑ ·¹Áö½ºÅ͵éÀº CPU°¡ ó¸®ÇÏ ´Â ³í¸® ¿¬»êÀÛ¿ë¿¡¼­ ÀϽà ±â¾ïÀå¼Ò·Î ¾²À̰ųª ÇÁ·Î±×·¥À» ½ÇÇàÇØ ³ª°¡´Â °úÁ¤¿¡¼­ CPU¿¡°Ô ÇÊ¿äÇÑ Áß¿äÇÑ µ¥ÀÌÅ͵éÀÇ º¸°ü Àå¼Ò·Î ÀÌ¿ëµÈ´Ù. ·¹Áö½ºÅÍ´Â º¸Åë º¯¼öÀÇ ±â¾ï Àå¼Ò·Î ¾²ÀÌ´Â RAM º¸´Ù ÀÔÃâ·Â ¼Óµµ°¡ ¸Å¿ì ºü¸£´Ù. IBM-PCÀÇ 8086 CPUÀÇ ·¹Áö½ºÅÍ´Â ¸ðµÎ 16ºñÆ® ·¹Áö½º Åͷμ­ ±× Áß¿¡´Â ±× °ªÀ» ¹Ù²Ù¾îµµ º°·Î »ó°ü ¾ø´Â ¹ü¿ë ·¹Áö½ºÅͶó´Â °ÍµéÀÌ Á¸ÀçÇϴµ¥ ±× ·¹ Áö½ºÅ͵éÀ» Á¤¼öÇü º¯¼öó·³ »ç¿ëÇÏ´Â °ÍÀÌ ·¹Áö½ºÅÍ º¯¼öÀÌ´Ù. ¾ÆÁÖ ÀÚÁÖ ¾²ÀÌ´Â º¯¼ö¿¡ ÀÌ ·¹ Áö½ºÅÍ º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì ¼Óµµ°¡ ¸Å¿ì »¡¶óÁø´Ù. ±×·¯³ª intÇü°ú unsigned intÇü¸¸ÀÌ ·¹Áö½ºÅÍ º¯¼ö·Î »ç¿ëµÉ ¼ö Àִµ¥ ±× ÀÌÀ¯´Â ·¹Áö½ºÅÍ°¡ 16ºñÆ®(2¹ÙÀÌÆ®)À̱⠶§¹®ÀÌ´Ù. ±×¸®°í ·¹Áö½ºÅÍ º¯¼ö·Î ¼±¾ð Çß´Ù°íÇؼ­ Ç×»ó ·¹Áö½ºÅÍ º¯¼ö°¡ µÇ´Â °ÍÀº ¾Æ´Ï°í ·¹Áö½ºÅÍ º¯¼ö°¡ µÇµµ·Ï ÄÄÆÄÀÏ ·¯¿¡°Ô ¿ä±¸ÇÏ´Â Á¤µµÀÌ´Ù(IBM-PCÀÇ °æ¿ì register º¯¼ö°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ·¹Áö½ºÅÍÀÇ ¼ö´Â 1 ~ 2°³ ¹Û¿¡´Â µÇÁö ¾Ê´Â´Ù). Âü°í·Î TURBO C ¿¡¼­´Â ·¹Áö½ºÅÍ º¯¼ö·Î ·¹Áö½ºÅÍ SI¿Í DI¸¦ »ç¿ëÇϸç, ±»ÀÌ ·¹Áö½ºÅÍ º¯¼ö ·Î ¼±¾ðÇÏÁö ¾Ê¾Æµµ TURBO C ÄÄÆÄÀÏ·¯´Â ºí·°ÀÇ Ã³À½¿¡ ³ª¿À°Å³ª ÀÚÁÖ ¾²ÀÌ´Â ÀÚµ¿º¯¼ö¸¦ ·¹ Áö½ºÅÍ º¯¼ö·Î »ç¿ëÇÑ´Ù. ¡Ø auto¿Í registerÀÇ ºñ±³ (MSC³ª C++ VersionÀ¸·Î ÄÄÆÄÀÏ ÇØ¾ß ÇÑ´Ù) #include #include void main(void) { struct dostime_t t1, t2; register int r; int a, k; long int i; printf("\n** register **\n"); _dos_gettime(&t1); printf("start --> %d %d.%d\n",t1.minute,t1.second,t1.hsecond); for (k = 1; k <= 1000; k++) for (r = 1; r <= 30000; r++); _dos_gettime(&t2); printf(" end --> %d %d.%d\n",t2.minute,t2.second,t2.hsecond); i = t2.minute * 60 * 100 + t2.second * 100 + t2.hsecond - t1.minute * 60 * 100 - t1.second * 100 - t1.hsecond; printf("time = %ld milisecs\n",i); printf("\n** auto **\n"); _dos_gettime(&t1); printf("start --> %d %d.%d\n",t1.minute,t1.second,t1.hsecond); for (k = 1; k <= 1000; k++) for (a = 1; a <= 30000; a++); _dos_gettime(&t2); printf(" end --> %d %d.%d\n",t2.minute,t2.second,t2.hsecond); i = t2.minute * 60 * 100 + t2.second * 100 + t2.hsecond - t1.minute * 60 * 100 - t1.second * 100 - t1.hsecond; printf("time = %ld milisecs\n",i); } ´ÙÀ½Àº ÃÖ´ë °ø¾à¼ö¿Í ÃÖ¼Ò °ø¹è¼ö¸¦ ±¸ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. main() { int gcd = 1; int n, m; int min; register int i; /* Ä«¿îÅÍ º¯¼ö¸¦ register·Î ¼±¾ð */ printf("Input N and M -> "); scanf("%d%d",&n,&m); min = n > m ? m : n; /* µÑ Áß ÀÛÀº °ªÀ» ±¸ÇÔ */ for (i = 2; i <= min; i++) if (n % i == 0 && m % i == 0) /* µÎ ¼ö¸¦ ´Ù ³ª´©¸é Áö±Ý±îÁöÀÇ ÃÖ´ë °ø¾à¼ö°¡ µÊ */ gcd = i; printf("GCD : %d\n",gcd); printf("LCD : %ld\n",(long int)m*n/gcd); } ÃÖ´ë °ø¾à¼ö´Â À§¿Í °°ÀÌ ±¸ÇÏ´Â °Íº¸´Ù ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â °ÍÀº Å« ¼ö¸¦ ÀÛÀº ¼ö·Î °è ¼Ó ³ª´©¾î¼­ ¶³¾îÁú ¶§ ã´Â °ÍÀÌ´Ù. ³ª´©¾î ¶³¾îÁö°Ô ¸¸µç ¼ö°¡ ¹Ù·Î ÃÖ´ë °ø¾à¼ö°¡ µÈ´Ù. main() { int gcd; int max; int n, m; int t; printf("Input N and M -> "); scanf("%d%d",&n,&m); gcd = n > m ? m : n; /* µÑ Áß ÀÛÀº °ªÀ» ±¸ÇÔ */ max = n > m ? n : m; /* µÑ Áß Å« °ªÀ» ±¸ÇÔ */ while (max % gcd != 0) { /* Å« °ªÀ» ÀÛÀº °ªÀ¸·Î °è¼Ó ³ª´©¾î ¶³¾îÁú ¶§±îÁö */ t = max; /* Å« °ª°ú ÀÛÀº °ªÀ» ¼­·Î ¹Ù²Þ */ max = gcd; gcd = t % gcd; } printf("GCD : %d\n",gcd); printf("LCD : %ld\n",(long int)m*n/gcd); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Input N and M -> 270 720 ³ú GCD : 90 LCD : 2160 ¡Ø º¯¼öµéÀÇ ¿µ¿ª ±ÔÄ¢ µ¿ÀÛ ¹üÀ§¿¡ µû¶ó º¯¼ö¸¦ ³ª´©¸é ¸Þ¸ð¸® À¯Çü¿¡ µû¶ó Àü¿ª º¯¼ö¿Í Áö¿ª º¯¼ö·Î ³ª´­ ¼ö ÀÖ´Ù. Áï extern ¸Þ¸ð¸® À¯Çü°ú Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ Àü¿ª º¯¼ö¿Í auto¸Þ¸ð¸® À¯Çü°ú Áö¿ª static¸Þ¸ð¸® À¯ÇüÀÇ Áö¿ª º¯¼ö·Î ³ª´­ ¼ö Àִµ¥, ÀÌµé º¯¼öµéÀÌ ¼­·Î °°Àº À̸§À» °¡Áú ¼ö ÀÖ ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì. int i = 1, j = 2; void main() { int i = 3; /* int l = 3; */ int k = 4; i += j + i; /* l += j + l; */ k *= i - j; /* k *= l - j; */ printf("i = %d, j = %d\n",i,j); /* printf("i = %d, j = %d\n",l,j); */ { int i = 5, k = 6; /* int m = 5, n = 6; */ i = ++j; /* m = ++j; */ k = ++i; /* n = ++m; */ printf("i = %d, j = %d\n",i,j); /* printf("i = %d, j = %d\n",m,j); */ } i = f1(j); j = f1(k); printf("i = %d, j = %d\n",i,j); /* printf("i = %d, j = %d\n",l,j); */ } /* ´Ù¸¥ º¯¼ö´Â ´Ù¸¥ À̸§À» »ç¿ëÇÑ´Ù */ f1(int x) { return (x + ++i - j--); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- i = 8, j = 2 i = 4, j = 3 i = 2, j = 25 ÇÁ·Î±×·¥ÀÇ ÇÑ °÷¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °°Àº À̸§ÀÇ º¯¼ö°¡ ¿©·¯ °³ ÀÖÀ¸¸é °¡Àå °¡±î¿î °÷¿¡ Á¤ ÀÇµÈ º¯¼ö¸¸ »ç¿ëÇϱ⠶§¹®¿¡ °á±¹ ³ª¸ÓÁö º¯¼öµéÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. À§ÀÇ ÇÁ·Î±×·¥ÀÇ °æ¿ì main ³»¿¡¼­ ¹Ù±ùÂÊÀÇ i´Â »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç ºí·° ³»¿¡¼­ mainÀÇ k´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. < ÇÔ¼öÀÇ ¸Þ¸ð¸® À¯Çü > ÇÔ¼öµµ º¯¼ö¿Í °°ÀÌ ¸Þ¸ð¸® À¯ÇüÀÌ Àִµ¥ ´ÙÀ½°ú °°ÀÌ µÎ °³ÀÇ ¸Þ¸ð¸® À¯ÇüÀÌ ÀÖ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ©ç extern ¸Þ¸ð¸® À¯Çü ¦¢ ¦¢ ©è static ¸Þ¸ð¸® À¯Çü ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Áö±Ý±îÁö ÇÔ¼ö¸¦ »ç¿ëÇϸ鼭 ¸Þ¸ð¸® À¯ÇüÀ» »ç¿ëÇÑ ÀûÀÌ ¾ø´Ù. Áï À̸¦ »ý·«ÇÑ °ÍÀε¥ ÀÌ °æ¿ì À̵é ÇÔ¼öµéÀº ¸ðµÎ extern ¸Þ¸ð¸® À¯ÇüÀ» °®°í ÀÖ´Â °ÍÀÌ µÈ´Ù. extern ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼öµéÀº ½ÇÁ¦·Î ¸Þ¸ð¸® À¯ÇüÀ» ÁöÁ¤ÇÏÁö ¸»¾Æ¾ß Çϸç Áö±Ý±îÁö¿Í °°ÀÌ »ý·«Çؼ­ »ç¿ëÇÑ ÇÔ¼öµéÀÌ extern ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼öµéÀÌ´Ù. ±×·¯³ª static ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼öµéÀº ´ÙÀ½°ú °°ÀÌ staticÀ̶ó°í ºÐ¸í È÷ ¼±¾ðµÈ ÇÔ¼öµéÀ» ÀǹÌÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ static int f1(int x) { ¦¢ ¦¢ : ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ static ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼ö´Â ÀÚ½ÅÀÌ Á¤ÀÇµÈ È­ÀÏ ³»¿¡¼­¸¸ ºÒ·¯ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ È­ÀÏÀÇ ÇÁ·Î±×·¥¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø°Ô µÈ´Ù. ÀÌ´Â Àü¿ª static ¸Þ¸ð¸® À¯ÇüÀÇ º¯¼ö¿Í À¯»çÇѵ¥, static ¸Þ ¸ð¸® À¯ÇüÀÇ ÇÔ¼öµéµµ ±× È­ÀÏ ³»¿¡¼­¸¸ ÇÔ¼ö¸¦ »ç¿ëÇÏ°í ´Ù¸¥ È­ÀÏ¿¡¼­´Â »ç¿ëÇÏÁö ¸øÇϵµ·Ï ¸· °íÀÚÇÒ ¶§ »ç¿ëÇÑ´Ù. ´ÙÀ½Àº ÀÌÀÇ ÇÑ ¿¹ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ void main() { /* main.c */ ¦¢ ¦¢ int i = 10; ¦¢ ¦¢ int s; ¦¢ ¦¢ s = f1(i); ¦¢ ¦¢ s += abs(s); ¦¢ ¦¢ printf("s = %d\n",s); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ abs(int i) { /* static abs(int i) { */ ¦¢ ¦¢ return (i > 0 ? i : -i); ¦¢ ¦¢ } ¦¢ ¦¢ /***********************************************************************************/ ¦¢ ¦¢ ¦¢ ¦¢ float abs(float x) { /* f1.c */ ¦¢ ¦¢ return (x > 0.0f ? x : -x); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ f1(int i) { ¦¢ ¦¢ float f = 2.3f; ¦¢ ¦¢ f *= i - 13.2f; ¦¢ ¦¢ i = abs(f); ¦¢ ¦¢ return (i); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§ÀÇ ÇÁ·Î±×·¥¿¡¼­ main.cÀÇ main¿¡¼­ f1.cÈ­ÀÏÀÇ f1À» ºÎ¸£°í ÀÖÀ¸¸ç ±× ÈÄ ÀڽŰú °°Àº È­ÀÏÀÇ ÇÔ¼ö abs¸¦ ºÎ¸£°í ÀÖ´Ù. ±×·±µ¥ f1.c¿¡µµ °°Àº À̸§ÀÇ ÇÔ¼ö abs°¡ Á¤ÀǵǾî ÀÖ°í f1¿¡¼­ À̸¦ ºÎ ¸£°í ÀÖ´Ù. µû¶ó¼­ ÇÑ ÇÁ·Î±×·¥ ³»¿¡ °°Àº À̸§ÀÇ ÇÔ¼ö°¡ µÎ °³ Á¸ÀçÇϱ⠶§¹®¿¡ ¸µÅ©½Ã¿¡ ¿¡·¯ °¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ±×·¯³ª abs¸¦ static ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼ö·Î Á¤ÀÇÇÏ°Ô µÇ¸é ¾Æ¹« ¹®Á¦°¡ ¹ß»ýÇÏ Áö ¾Ê´Â´Ù(½ÇÁ¦·Î ÀÌ Áß Çϳª¸¸ staticÀ¸·Î Á¤ÀÇÇصµ ¿¡·¯´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù). ¹Ý¸é¿¡ extern ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÇ ¾î´À ºÎºÐ¿¡¼­µçÁö È£ÃâÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. ½ÉÁö¾î ±× ÇÔ¼ö¿Í ´Ù¸¥ È­ÀÏ¿¡ ÀÖ´Â ÇÁ·Î±×·¥¿¡¼­µµ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù(À̶§ ÇÔ¼ö ¸¦ ¼±¾ðÇؾ߸¸ »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ìµµ ÀÖ´Ù). µû¶ó¼­ extern ¸Þ¸ð¸® À¯ÇüÀÇ ÇÔ¼öÀÇ µ¿ÀÛ ¹üÀ§´Â Àüü ÇÁ·Î±×·¥ÀÌ µÈ´Ù. < ÇÔ¼öÀÇ ¼±¾ð > ÇÔ¼öÀÇ ¼±¾ðÀº ÄÄÆÄÀÏ·¯¿¡°Ô ÀÚ½ÅÀÌ È£ÃâÇÒ ÇÔ¼öÀÇ Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. Áï ÇÔ¼öÀÇ ÀÌ ¸§°ú ±× ÇÔ¼ö°¡ »êÃâÇÏ´Â °è»ê °á°úÀÇ À¯Çü, ÀÎÀÚÀÇ ¼ö¿Í °¢ ÀÎÀÚÀÇ À¯ÇüµîÀ» ¾Ë·Á Á༭ ±× ÈÄ ÄÄÆÄÀÏ·¯°¡ ±× ÇÔ¼ö¿¡ ´ëÇÑ È£Ãâ¹®À» ¸¸³µÀ» ¶§ ÀÌ Á¤º¸¸¦ ¹ÙÅÁÀ¸·Î ó¸®Çϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. Áö±Ý±îÁö ÇÔ¼ö¸¦ »ç¿ëÇÑ ¿¹¸¦ º¸¸é È£ÃâÇÏ´Â ÇÔ¼ö º¸´Ù ¾Õ¿¡ ÇÔ¼ö¸¦ Á¤ÀÇÇÑ Àûµµ ÀÖ¾ú°í ¿ÀÈ÷·Á µÚ¿¡ Á¤ÀÇÇÑ Àûµµ ÀÖ¾ú´Ù. »ó´çÈ÷ ºÒ±ÔÄ¢ÀûÀ¸·Î Á¤ÀÇÇß¾ú´Âµ¥ ½ÇÁ¦·Î ±×·¸°Ô Á¤ÀÇÇØ¾ß Çϱ⠶§¹® ¿¡ ±×·¸°Ô ÇÑ °ÍÀ̾ú´Ù. C ÄÄÆÄÀÏ·¯°¡ ÄÄÆÄÀÏ µµÁß¿¡ ÇÔ¼ö È£Ãâ¹®À» ¸¸³ª°Ô µÇ¸é ÇöÀç±îÁö ó¸®ÇÑ ³»¿ë Áß¿¡ ±× ÇÔ¼ö¿¡ ´ëÇÑ Á¤ÀÇ°¡ ÀÖ´ÂÁö¸¦ ã´Â´Ù. ¸¸¾à ÀÖÀ¸¸é À̸¦ ¹ÙÅÁÀ¸·Î ±× È£Ãâ¹®À» ó¸®ÇÏ°Ô µÈ´Ù. Áï ±× ÇÔ ¼ö°¡ °è»ê °á°ú·Î ³Ñ°ÜÁÖ´Â °ÍÀÇ À¯ÇüÀ» ã¾Æ ±×´ë·Î ¿Àµµ·Ï ÇØÁÖ°í ÀÎÀÚÀÇ À¯ÇüÀº ¸Â´ÂÁö Á¶»ç ÇÏ°Ô µÈ´Ù. ±×·±µ¥ ÀÌ °æ¿ì´Â ÇÔ¼ö È£Ãâ¹® º¸´Ù ÇÔ¼ö°¡ ¸ÕÀú Á¤ÀǵǾî ÀÖ´Â °æ¿ìÀÌ´Ù. Áï ÇÁ·Î±× ·¥ ¼ø¼­»óÀ¸·Î È£ÃâµÉ ÇÔ¼ö°¡ È£ÃâÇÑ ÇÔ¼ö º¸´Ù ¸ÕÀú ³ªÅ¸³­ °æ¿ì°¡ ÀÌ¿¡ ÇØ´çµÈ´Ù. ±×·¯³ª ±× ¹Ý´ëÀÏ ¼öµµ Àִµ¥ ÀÌ °æ¿ì´Â È£Ãâ¹®À» ¸¸³µÀ» ¶§ ¹«Á¶°Ç ±× ÇÔ¼ö°¡ int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú ·Î µ¹·ÁÁÖ´Â ÇÔ¼ö·Î °£ÁÖÇÏ¿© ó¸®ÇÑ´Ù. ±×¸®°í °è¼ÓÇؼ­ ó¸®ÇØ ³ª°¡´Âµ¥, µÚ¿¡ ±× È£ÃâµÉ ÇÔ¼ö °¡ int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î µ¹·ÁÁÖ´Â ÇÔ¼ö¸é ¾Æ¹« ¹®Á¦°¡ ¾øÁö¸¸ ¸¸¾à ´Ù¸¥ µ¥ÀÌÅÍ À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â ÇÔ¼öÀÏ °æ¿ì ÄÄÆÄÀÏ ¿¡·¯°¡ ³ª°Ô µÈ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°Àº »ç½ÇÀ» ¾Ë ¼ö ÀÖ´Ù. ÇÔ¼ö°¡ int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â °æ¿ì¿¡´Â ÇÔ¼ö È£Ãâ¹® º¸´Ù ¾Õ¿¡ ¿Íµµ ÁÁ°í µÚ¿¡ ¿Íµµ ÁÁÁö¸¸, int À¯ÇüÀÌ ¾Æ´Ñ ´Ù¸¥ µ¥ÀÌÅÍ À¯ÇüÀ» »êÃâÇÏ ´Â °æ¿ì¿¡´Â ÇÔ¼ö È£Ãâ¹® º¸´Ù ¾Õ¿¡ ¿Í¾ß ÇÑ´Ù. Áö±Ý±îÁöÀÇ ÇÔ¼öµéÀº ¹Ù·Î ÀÌ ±ÔÄ¢¿¡ µû¶ó ÀÛ¼º µÇ¾ú´Ù. ±×·¡¼­ int À¯ÇüÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â ÇÔ¼öµéÀº main ´ÙÀ½¿¡ ¿Ô¾ú°í ±×·¸Áö ¾ÊÀº ÇÔ ¼öµéÀº main º¸´Ù ¾Õ¿¡ ¿Ô¾ú´Ù. ¸¸¾à ÇÔ¼ö°¡ ´Ù¸¥ È­ÀÏ¿¡ ÀÖ´Â °æ¿ì¿¡µµ ±× ÇÔ¼ö°¡ int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â ÇÔ¼ö ¶ó¸é ¼öÇà½Ã ¾Æ¹« ¹®Á¦°¡ ¾øÁö¸¸ ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ¼öÇà½Ã À߸øµÈ °á°ú°¡ ³ª¿À°Ô µÈ´Ù. À̸¦ ¹æÁöÇØ ÁÖ´Â °ÍÀÌ ¹Ù·Î ÇÔ¼öÀÇ ¼±¾ðÀ¸·Î ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëÇÑ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ extern int f1(int x, int y); ¦¢ ¦¢ float f2(float, int); ¦¢ ¦¢ extern f3(); ¦¢ ¦¢ long int f4(void); ¦¢ ¦¢ extern void f5(int, int, ...); ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿¡¼­ ù¹ø°´Â int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ´Â ÇÔ¼ö f1À» »ç¿ëÇÏ°ÚÀ½À» ÄÄÆÄÀÏ·¯¿¡°Ô ¾Ë·ÁÁÖ°í ÀÖ´Ù. ÀÌÀÇ ÀÎÀÚ´Â 2°³°¡ Àִµ¥ µÑ ´Ù int À¯ÇüÀ̶ó´Â °Íµµ ¾Ë·ÁÁÖ°í ÀÖ´Ù. µÎ¹ø°´Â float À¯ÇüÀÇ µ¥ÀÌÅ͸¦ °è»ê °á°ú·Î »êÃâÇÏ´Â ÇÔ¼ö f2¸¦ ¼±¾ðÇÏ°í Àִµ¥ ¿ª½Ã ÀÎÀÚ´Â 2°³ÀÌ°í ù¹ø°´Â float À¯ÇüÀÌ°í µÎ¹ø°´Â int À¯ÇüÀ̶ó°í ÄÄÆÄÀÏ·¯¿¡°Ô ¾Ë·Á ÁÖ°í ÀÖ´Ù. ±×·¯³ª ¼¼¹ø°´Â ´Ü¼øÈ÷ f3ÀÌ int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÑ´Ù°í¸¸ ¾Ë·ÁÁÖ°í Àִµ¥, ÀÌ ÇÔ¼öÀÇ ÀÎÀÚ°¡ ¸î °³°¡ ÀÖ´ÂÁö´Â ³ªÅ¸³ª ÀÖÁö ¾Ê´Ù. µû¶ó¼­ ÄÄÆÄÀÏ·¯´Â °è»ê °á°ú¸¸ Á¶»çÇÏ°Ô µÇ ¸ç ÀÎÀÚ´Â ½Å°æ¾²Áö ¾Ê°Ô µÈ´Ù. ¹Ý¸é¿¡ ³×¹ø° °æ¿ì¿¡´Â f4°¡ long int À¯ÇüÀÇ °ªÀ» °è»ê °á°ú·Î »êÃâÇÏ°í ÀÎÀÚ´Â ¾ø´Ù°í È®½ÇÈ÷ ¼±¾ðÇÏ°í ÀÖ´Ù. void´Â ÀÎÀÚ°¡ ¾øÀ½À» ÀǹÌÇϴµ¥, ±× ÈÄ¿¡ f4¸¦ È£ÃâÇϸ鼭 ¿©±â¿¡ ÀÎÀÚ¸¦ ÁÖ°Ô µÇ¸é ÄÄÆÄÀÏ·¯´Â À߸øµÈ °ÍÀ¸·Î ÀνÄÇÏ¿© ¿¡·¯ ¸Þ½ÃÁö¸¦ ³»°Ô µÈ´Ù. ¸¶Áö¸· ´Ù¼¸¹ø°´Â f5°¡ °è»ê °á°ú°¡ ¾ø´Â ÇÔ¼öÀε¥ óÀ½ µÎ °³ÀÇ ÀÎÀÚ´Â int À¯ÇüÀÌ¿©¾ß ÇÏ°í ±× ´ÙÀ½ÀÇ ÀÎÀÚ´Â °¡º¯ÀûÀÓÀ», Áï ÀÎÀÚ°¡ ´õÀÌ»ó ¾øÀ» ¼öµµ ÀÖ°í 3°³°¡ ¿Ã ¼öµµ ÀÖ°í 10°³°¡ ¿Ã ¼öµµ ÀÖ°í ¶Ç´Â 100°³ ¿Ã ¼öµµ ÀÖÀ½À» ³ªÅ¸³½´Ù. ÀÌ´Â ¸Ç ³¡ÀÇ '...'ÀÌ ³ªÅ¸³»°í ÀÖÀ¸¸ç, µû¶ó¼­ f5 ´Â printf¿Í °°ÀÌ °¡º¯ ÀÎÀÚ ÇÔ¼öÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ÇÔ¼öÀÇ ¼±¾ðÀº ÄÄÆÄÀÏ·¯¿¡°Ô Á¤º¸¸¦ °¡¸£ÄÑ ÁÖ´Â °ÍÀÌ ÁÖ ¸ñÀûÀ̱⠶§¹®¿¡ ÀÎÀÚÀÇ À̸§Àº ÀüÇô Áß¿äÇÏÁö°¡ ¾Ê´Ù. ±×·¡¼­ À̸¦ »ý·«ÇÏ¿© À§ÀÇ µÎ¹ø° ¿¹¿Í °°ÀÌ µ¥ÀÌÅÍ À¯Çü¸¸ ÁÙ ¼ö ÀÖ´Ù. ¶Ç ÀÎ ÀÚÀÇ À̸§À» ÁØ´Ù Çصµ ±× À̸§ÀÌ ½ÇÁ¦ ÇÔ¼ö Á¤ÀǽÃÀÇ Çü½Ä ÀÎÀÚÀÇ À̸§°ú °°À» ÇÊ¿äµµ ¾ø´Ù. ´Ü Áö ÇÔ¼ö Á¤ÀÇ¿Í ºñ½ÁÇÏ°Ô ÇÔ¼ö¸¦ ¼±¾ðÇϵµ·Ï ±¸»öÀ» ¸ÂÃá °Í¿¡ ºÒ°úÇÏ´Ù. ÇÔ¼öÀÇ ¼±¾ðÀº º¯¼öÀÇ ¼±¾ð°ú °°ÀÌ ÇÔ¼ö³ª ºí·° ¾È¿¡ ½ÇÇ๮ÀÌ ¿À±â Àü¿¡ Çϰųª ¾Æ´Ï¸é ÇÔ¼ö ¹Ù±ùÂÊ¿¡ ÇÒ ¼ö Àִµ¥, À̶§ º¯¼ö ¼±¾ð°ú °°ÀÌ µ¿ÀÛ ¹üÀ§, Áï ±×°ÍÀÇ È¿·ÂÀÇ ¹üÀ§°¡ ´Þ¶óÁö°Ô µÈ ´Ù. ÇÔ¼ö³ª ºí·° ³»¿¡ ¿Â °æ¿ì¿¡´Â ±× ÇÔ¼ö³ª ºí·° ³»¿¡¼­¸¸ È¿°ú°¡ ÀÖ´Ù. µû¶ó¼­ ±× ÇÔ¼ö³ª ºí·° À» ¹þ¾î³ª°Ô µÇ¸é ÄÄÆÄÀÏ·¯´Â ÀÌ¿¡ ´ëÇÑ Á¤º¸¸¦ ÀØ°Ô µÇ¾î ÇÔ¼ö¸¦ ¼±¾ðÇÏÁö ¾ÊÀº °Í°ú °°Àº È¿°ú ¸¦ ³»°Ô µÈ´Ù. ¹Ý¸é¿¡ ÇÔ¼ö ¹Ù±ùÂÊ¿¡ ¼±¾ðÇÑ °æ¿ì¿¡´Â ±× À§Ä¡ºÎÅÍ ±× È­ÀÏÀÇ ³¡±îÁö È¿·ÂÀ» À¯ ÁöÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ °æ¿ì. void print_head(); /* ÇÔ¼öÀÇ ¿øÇüÀ» ¼±¾ðÇÑ´Ù */ main() { int i, n = 100; print_head(); for (i = 2; i <= n; i++) if (prime(i)) printf("%3d ",i); printf("\n"); } void print_head() { printf("=========================================================="); printf("=====================\n"); printf(" Prime Number from 1 to 100\n"); printf("=========================================================="); printf("=====================\n"); } int prime(int n) { int i; if (n % 2 == 0) return (n == 2); /* ¦¼öÀÌ°í 2°¡ ¾Æ´Ï¸é 0À» µÇµ¹¸² */ if (n % 3 == 0) return (n == 3); /* 3ÀÇ ¹è¼öÀÌ°í 3°¡ ¾Æ´Ï¸é 0À» µÇµ¹¸² */ if (n % 5 == 0) return (n == 5); /* 5ÀÇ ¹è¼öÀÌ°í 5°¡ ¾Æ´Ï¸é 0À» µÇµ¹¸² */ for (i = 7; i * i <= n; i += 2) /* ¼Ò¼öÀÓÀ» È®ÀÎ */ if (n % i == 0) /* iÀÇ ¹è¼ö À̸é 0À» µÇµ¹¸² */ return 0; return 1; /* À§ÀÇ ¸ðµç °æ¿ì°¡ ¾Æ´Ò °æ¿ì ¼Ò¼öÀÌ´Ù */ } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- =============================================================================== Prime Number from 1 to 100 =============================================================================== 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 ¡Ø ÇÔ¼öÀÇ ¼±¾ð ³»¿ë°ú ½ÇÁ¦ ÇÔ¼öÀÇ Á¤ÀÇ ³»¿ëÀÌ ´Ù¸¦ °æ¿ì º¯¼öÀÇ ¼±¾ð°ú ¸¶Âù°¡Áö·Î ÇÔ¼öÀÇ Á¤ÀÇ°¡ ÇÔ¼ö¸¦ ¼±¾ðÇÑ °Í°ú °°Àº È­ÀÏ¿¡ ÀÖ´Â °æ¿ì¿¡´Â ÄÄÆÄ ÀÏ·¯°¡ ÀÌ µÑÀÌ ´Ù¸§À» ÀνÄÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÄÄÆÄÀϽà ¿¡·¯°¡ ³ª°Ô µÈ´Ù. ±×·¯³ª ¼­·Î ´Ù¸¥ È­ÀÏ ¿¡ ÀÖ´Â °æ¿ì¿¡´Â ÄÄÆÄÀÏ·¯°¡ ÀÌ µÑÀÌ Â÷ÀÌ°¡ ÀÖ´Ù´Â °ÍÀ» ¸ð¸£±â ¶§¹®¿¡ ¼±¾ðÇÑ ´ë·Î È£Ãâ¹®À» ÄÄÆÄÀÏÇÏ°Ô µÇ¾î °á±¹ ¼öÇà½Ã À߸øµÈ °á°ú°¡ ³ª¿À°Ô µÈ´Ù. ¶Ç º¯¼öÀÇ ¼±¾ð°ú °°ÀÌ °°Àº ÇÔ¼ö¸¦ ¿©·¯ ¹ø Áߺ¹µÇ°Ô ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î ÇÔ¼ö ¹Ù±ùÂÊ¿¡ Àü¿ªÀûÀ¸·Î ¼±¾ðÇØ ³õ°í ÇÔ¼ö ¾È ¿¡¼­ ¶Ç ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù. ÀÌ °æ¿ì µÎ ¼±¾ðÀÌ °°°Å³ª Ãæµ¹ÀÇ ¼ÒÁö°¡ ¾øÀ¸¸é(Áï ÇÑ ¼±¾ð¿¡¼­´Â ÀÎÀÚ¸¦ ¸í½ÃÇÏÁö ¾Ê¾Ò´Âµ¥ ´Ù¸¥ ¼±¾ð¿¡¼­´Â ÀÎÀÚ¸¦ ¸í½ÃÇÑ °Í°ú °°ÀÌ) ±×³É ¹«½ÃÇÏÁö¸¸ ´Ù¸£°Å³ª Ãæµ¹ÀÇ ¼ÒÁö°¡ ÀÖÀ¸¸é ¿ª½Ã ¿¡·¯ ¸Þ½ÃÁö¸¦ ³»°Ô µÈ´Ù. < µÇºÎ¸§ ÇÔ¼ö > µÇºÎ¸§ ÇÔ¼ö¶õ ÀÚ±âÀÚ½ÅÀ» ´Ù½Ã È£ÃâÇÏ´Â ÇÔ¼ö¸¦ ÀÏÄ´µ¥ ÀڱⰡ ÀÚ±â ÀÚ½ÅÀ» ºÎ¸£´Â °ÍÀ» Àç ±ÍÀû È£Ãâ(recursive call) ¶Ç´Â ¸®Ä¿Á¯(recursion)À̶ó°í ÇÑ´Ù. ´ÙÀ½Àº ÇϳªÀÇ ¹®ÀåÀ» ÀÔ·Â¹Þ¾Æ °Å²Ù·Î Ãâ·ÂÇØ ÁÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. #include void print_back() { int ch; if ((ch = getchar()) != '\n') /* ÇѱÛÀÚ¸¦ ÀԷ¹ްí ÁÙ¹Ù²Þ ¹®ÀÚÀÎÁö È®ÀÎ */ print_back(); /* ÁÙ¹Ù²Þ ¹®ÀÚ°¡ ¾Æ´Ñ°æ¿ì µÇºÎ¸§ */ putchar(ch); /* ÀԷ¹ÞÀº ¹®ÀÚ Ç¥½Ã */ } main() { printf("Enter a line -> "); print_back(); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- Enter a line -> Hello ³ú olleH +-----+ +-----+ Hello\n------6| \n | | \n |1------ \nolleH ||||| +-----+ +-----+ ||||| ||||+--------5| o | | o |2---------+|||| |||| +-----+ +-----+ |||| |||+---------4| l | | l |3----------+||| ||| +-----+ --------------> +-----+ ||| ||+----------3| l | | l |4-----------+|| || +-----+ +-----+ || |+-----------2| e | | e |5------------+| | +-----+ +-----+ | +------------1| H | | H |6-------------+ +-----+½ºÅÿ¡ ½×¿© ¿Ã¶ó°¨ +-----+ À§ºÎÅÍ ²¨³»¼­ Ãâ·ÂµÊ ¿ì¼± print_back() ÇÔ¼ö¸¦ º¸¸é ÇϳªÀÇ ¹®ÀÚ¸¦ ÀÔ·Â¹Þ¾Æ ±× ¾Æ½ºÅ° Äڵ带 Á¤¼öÇüÀ¸·Î µÇµ¹¸®´Â ÇÔ¼öÀÎ getchar() ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ch¿¡ ´ëÀÔÇÑ ÈÄ ±× °ªÀÌ ÁÙ¹Ù²Þ ¹®ÀÚ°¡ ¾Æ´Ï¸é ´Ù½Ã µÇºÎ¸§ È£ÃâÀ» ÇÑ´Ù. ÀÌ·¸°Ô °è¼Ó ³ª°¡´Ù°¡ ÁÙ¹Ù²Þ ¹®ÀÚ¸¦ ¸¸³­ ½ÃÁ¡¿¡¼­ µÇºÎ¸§ È£ÃâÀ» ÇÏÁö ¾Ê°í putchar(ch)¸¦ ½ÇÇàÇÏ¿© È­¸é¿¡ ÇϳªÀÇ ¹®ÀÚ¸¦ Ç¥½ÃÇÏ´Â °úÁ¤À» ¹®ÀåÀÇ Ã³À½±îÁö ¹Ýº¹ÇÏ°Ô µÇ¾î ¹®ÀÚ°¡ °Å²Ù·Î ÂïÈ÷°Ô µÈ´Ù. ´ÙÀ½Àº Àç±ÍÀû È£ÃâÀ» »ç¿ëÇÏ¿© N!À» ±¸ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ long int fact(int n) { ¦¢ ¦¢ if (n <= 1) ¦¢ ¦¢ return (1); ¦¢ ¦¢ else ¦¢ ¦¢ return (n * fact(n - 1)); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ main() { ¦¢ ¦¢ int num; ¦¢ ¦¢ for (num = 1; num <= 10; num++) ¦¢ ¦¢ printf("%2d! = %8ld\n",num,fact(num)); ¦¢ ¦¢ } ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿¡¼­ factÇÔ¼ö¸¦ º¸¸é Çü½ÄÀÎÀÚ nÀÇ °ªÀÌ 1°ú °°°Å³ª ÀÛÀ» °æ¿ì 1À» µÇµ¹¸®°í ±×·¸Áö ¾ÊÀ» °æ ¿ì¿¡´Â n°ú factÇÔ¼ö¿¡ n - 1ÀÇ °ªÀ» ´Ù½Ã³Ö¾î È£ÃâÇÑ °ªÀ» µÇµ¹¸°´Ù. ÀÌ µÇºÎ¸§ ÇÔ¼ö¸¦ ´Ù½Ã Â÷±ÙÂ÷±Ù µûÁ®º¸¸é, 'fact(1)'·Î È£ÃâÇßÀ» °æ¿ì¿¡´Â óÀ½ÀÇ if¹®¿¡ °É·Á 1 À» µÇµ¹¸®´Â °ÍÀÌ ÀüºÎÀ̸ç 'fact(2)'·Î È£ÃâÇßÀ» °æ¿ì¿¡´Â '2 * fact(2 - 1)'À» µÇµ¹¸®°Ô µÇ´Âµ¥ fact(1) = 1À̹ǷΠ°á±¹ 2¸¦ µÇµ¹¸°´Ù. ÀÌ·¯ÇÑ ½ÄÀ¸·Î 'fact(3) = (3 * fact(3 - 1)) = (3 * (2 * fact(2 - 1))) = (3 * (2 * 1))) = 6ÀÌ µÈ´Ù. double power(int x, int y) { return ((y == 0) ? 1 : x * power(x, y - 1)); } main() { int x = 10, y; double d; for (y = 15; y <= 20; y++) { d = power(x,y); printf("%2d ^ %2d = %21.0lf\n",x,y,d); } } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- 10 ^ 15 = 1000000000000000 10 ^ 16 = 10000000000000000 10 ^ 17 = 100000000000000000 10 ^ 18 = 1000000000000000000 10 ^ 19 = 10000000000000000000 10 ^ 20 = 100000000000000000000 ¡Ø µÇºÎ¸§ ÇÔ¼ö´Â ½ºÅÃÀ̶ó´Â ¸Þ¸ð¸®¸¦ ¸Å¿ì ¸¹ÀÌ ¼ÒºñÇÑ´Ù. ƯÈ÷ Áö¿ªº¯¼öÀÎ ÀÚµ¿º¯¼ö°¡ ¸¹Àº µÇºÎ¸§ ÇÔ¼öÀÏ °æ¿ì ´õ¿í ¸¹Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÑ´Ù. ½ÇÇàÁß ³Ê¹« ¸¹Àº µÇºÎ¸§À¸·Î ÀÎÇØ ÄÄÇ»ÅÍ°¡ ÀÛµ¿À» ÁßÁöÇϰųª ÇÁ·Î±×·¥¿¡ ÀÌ»óÀÌ »ý±â´Â ¼ö°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·¯ÇÑ ´ÜÁ¡ ¿Ü¿¡µµ µÇºÎ ¸§ ÇÔ¼ö¸¦ »ç¿ëÇÔÀ¸·Î½á º¸Åë ÇÔ¼ö¸¦ »ç¿ëÇßÀ» ¶§º¸´Ù ´õ ¼Óµµ°¡ ´À·ÁÁö°Å³ª ÇÁ·Î±×·¥À» ÀÌÇØÇÏ ±â ¾î·Á¿î »óÅ·Π¸¸µé¾î ¹ö¸®´Â °æ¿ì°¡ ÀÖ´Ù. ¡Ø ´ÙÀ½Àº ÀÔ·ÂÇÑ ÅؽºÆ® °¡¿îµ¥ ´ÙÀ½°ú °°Àº ½ºÆ®¸µÀÌ ¸î¹ø ³ªÅ¸³ª´ÂÁö¸¦ °è»êÇÏ´Â ÇÁ·Î±×·¥ÀÌ ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ if, the, who, while, do, text, tree ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ÀÌ °æ¿ì ã´Â ½ºÆ®¸µÀÌ i, w, d, t·Î¸¸ ½ÃÀÛÇϹǷΠ¸Ç óÀ½ ±ÛÀÚ°¡ i, w, d, tÀÏ °æ¿ì¸¸ ½Å°æ¾² ¸éµÈ´Ù. ¸¸¾à if¸¦ ãÀ» °æ¿ì, ÀÔ·ÂÇÑ ±ÛÀÚ°¡ i¿´À» ¶§ ±× ´ÙÀ½ ±ÛÀÚ°¡ fÀ̸é ÀÌ´Â if°¡ ¿Â °ÍÀÌ ¹Ç·Î ifÀÇ °¹¼ö¸¦ ±â¾ïÇÏ°í ÀÖ´Â º¯¼ö °ªÀ» Áõ°¡½ÃÅ°¸é µÈ´Ù. À̶§ ÀÔ·ÂÇÑ ±ÛÀÚ°¡ iÀÎ °ÍÀ» Çϳª ÀÇ »óŶó°í Çϸé ÀÌ »óÅ¿¡¼­ ÀÔ·ÂÀÌ f°¡ µé¾î¿À¸é ifÀÇ Ä«¿îÅ͸¦ Áõ°¡½ÃÅ°°í ´Ù½Ã óÀ½À¸·Î °¡ ¸é µÇ°í ±× ¿ÜÀÇ ´Ù¸¥ ÀÔ·ÂÀÌ µé¾î¿À¸é ´Ù½Ã óÀ½ »óÅ·Π°¡¸é µÈ´Ù. À̸¦ ±×¸²À¸·Î ³ªÅ¸³»¸é ´Ù À½°ú °°´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ¸ðµç ÀÔ·Â ¦¢ ¦¢ +--------------------------------------------------+ ¦¢ ¦¢ | ±×¿ÜÀÇ ÀÔ·Â | ¦¢ ¦¢ | +-----------------------+ | ¦¢ ¦¢ | | i | f | ¦¢ ¦¢ S0 ---------------------> S1 ---------------------> S2 ifÀÇ Ä«¿îÅÍ Áõ°¡ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿¡¼­ S0Àº óÀ½ »óÅÂÀÌ¸ç ¿©±â¼­ i°¡ µé¾î¿À¸é S1ÀÇ »óÅ·Π°¨À» ÀǹÌÇÑ´Ù. S1»óÅ¿¡¼­ f°¡ µé ¾î¿À¸é S2´Â ifÀÇ »óÅ°¡ µÇ¸ç ±× ¿ÜÀÇ ´Ù¸¥ ÀÔ·ÂÀÌ µé¾î ¿À¸é ´Ù½Ã S0ÀÇ »óÅ·Π°¡°Ô µÈ´Ù. S2ÀÇ »óÅ¿¡¼­´Â ¹«Á¶°Ç ifÀÇ Ä«¿îÅ͸¦ Áõ°¡½ÃÅ°°Ô µÇ¸ç ±×¸®°í ¿ª½Ã ¹«Á¶°Ç S0À¸·Î °¡°Ô µÈ´Ù(ÀÌ´Â if°¡ ÀԷµǾú±â ¶§¹®ÀÌ´Ù). ÀÌ¿Í °°Àº ¹æ¹ýÀ¸·Î À§ÀÇ 7°³ ½ºÆ®¸µ(if, who, while, do, the, text, tree)¿¡ ´ëÇØ »óÅ ÀüÀÌ ´ÙÀ̾î±×·¥(state transition diagram)À» ÀÛ¼ºÇÏ¸é ´ÙÀ½°ú °°ÀÌ µÈ´Ù. ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ i f ¦¢ ¦¢ S0 -------> S1 -------> S2 [if¹ß°ß] ¦¢ ¦¢ | w h o ¦¢ ¦¢ +--------> S3 -------> S4 -------> S5 [who¹ß°ß] ¦¢ ¦¢ | | i l e ¦¢ ¦¢ | +--------> S6 -------> S7 -------> S8 [while¹ß°ß] ¦¢ ¦¢ | d o ¦¢ ¦¢ +--------> S9 -------> S10 [do¹ß°ß] ¦¢ ¦¢ | t h e ¦¢ ¦¢ +--------> S11 -------> S12 -------> S13 [the¹ß°ß] ¦¢ ¦¢ | e x t ¦¢ ¦¢ +-------> S14 -------> S15 -------> S16 [text¹ß°ß] ¦¢ ¦¢ | r e e ¦¢ ¦¢ +-------> S17 -------> S18 -------> S19 [tree¹ß°ß] ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ À§¿¡¼­ ¾ø´Â ÀÔ·ÂÀº ¸ðµÎ S0À¸·Î °¡¸ç ÀÌ´Â ±×¸²¿¡ ³ªÅ¸³ª ÀÖÁö ¾Ê´Ù. ´ÙÀ½Àº ÀÌ°ÍÀ» ÇÁ·Î±×·¥À¸·Î ¿Å±ä °ÍÀÌ´Ù. #include void main() { char c; int ifno = 0; int whono = 0; int whileno = 0; int dono = 0; int theno = 0; int textno = 0; int treeno = 0; int status = 0; /* ÇöÀçÀÇ »óÅ */ while ((c = getchar()) != EOF) { switch (c) { case 'i': if (status == 0) status = 1; else if (status == 4) status = 6; else { ungetc(c,stdin); status = 0; } break; case 'f': if (status == 1) ++ifno; status = 0; break; case 'w': if (status == 0) status = 3; else { ungetc(c,stdin); status = 0; } break; case 'd': if (status == 0) status = 9; else { ungetc(c,stdin); status = 0; } break; case 't': if (status == 0) status = 11; else if (status == 15) { ++textno; status = 0; } else { ungetc(c,stdin); status = 0; } break; case 'h': if (status == 3) status = 4; else if (status == 11) status = 12; else status = 0; break; case 'o': if (status == 9) ++dono; else if (status == 4) ++whono; status = 0; break; case 'l': if (status == 6) status = 7; else status = 0; break; case 'r': if (status == 11) status = 17; else status = 0; break; case 'x': if (status == 14) status = 15; else status = 0; break; case 'e': if (status == 7) { ++whileno; status = 0; } else if (status == 12) { ++theno; status = 0; } else if (status == 11) status = 14; else if (status == 14) status = 15; else if (status == 17) status = 18; else if (status == 18) { ++treeno; status = 0; } else status = 0; break; default : status = 0; } } printf(" Number of if: %d\n",ifno); printf(" Number of who: %d\n",whono); printf("Number of while: %d\n",whileno); printf(" Number of do: %d\n",dono); printf(" Number of the: %d\n",theno); printf(" Number of text: %d\n",textno); printf(" Number of tree: %d\n",treeno); } ¦£¦¡¦¡¦¡¦¤ ¦¢ °á°ú ¦¢ ¦¦¦¡¦¡¦¡¦¥ --------------------------------------------------------------------------------- C:\TC>test < test.c ³ú Number of if: 24 Number of who: 4 Number of while: 5 Number of do: 4 Number of the: 4 Number of text: 4 Number of tree: 4