1581, 1/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   hacs98
   c¾ð¾î 2 switch ±¸¹®

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=7889 [º¹»ç]


  À̹ø °­Á¿¡¼­´Â if ¹®ÀÇ Ä£±¸ÀÎ switch ¹®¿¡ ´ëÇØ ¹è¿ö º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. switch ¹®ÀÌ if ¹®ÀÇ Ä£±¸¶ó°í ÇÑ ÀÌÀ¯´Â ÇÏ´Â ÀÏÀÌ Á¤¸»·Î if ¹®°ú ºñ½ÁÇϱ⠶§¹®ÀÌÁÒ. ÀÏ´Ü, ¾Æ·¡ÀÇ ÃÊ-°£´ÜÇÑ °­¾ÆÁö ½Ã¹Ä·¹À̼ÇÀ» º¸¼¼¿ä.

/* ¸¶ÀÌÆê */
#include <stdio.h>
int main()
{
    int input;

    printf("¸¶ÀÌÆê \n");
    printf("¹«¾ùÀ» ÇÏ½Ç °ÍÀÎÁö ÀÔ·ÂÇϼ¼¿ä \n");
    printf("1. ¹äÁÖ±â \n");
    printf("2. ¾Ä±â±â \n");
    printf("3. Àç¿ì±â \n");

    scanf("%d", &input);

    if(input == 1)
    {
        printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
    }
    else if(input == 2)
    {
        printf("¾ÆÀÌ ½Ã¿øÇØ \n");
    }
    else if(input == 3)
    {
        printf("zzz \n");
    }
    else
    {
        printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
    }
    return 0;
}

¼º°øÀûÀ¸·Î ÄÄÆÄÀÏ ÇÏ¿´´Ù¸é



¿Í °°ÀÌ 3 °¡Áö ¸í·É¿¡ ´ëÇØ ¹ÝÀÀÇÏ°í ¾Ë ¼ö ¾ø´Â ¸í·ÉÀº '¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð' ¶ó°í ³»º¸³À´Ï´Ù.

  ±×·±µ¥, ¸¸¾à °­¾ÆÁö°¡ À§ 3 °¡Áö ¸í·É¸¸ ¹ÝÀÀÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó 10 °¡Áö ¸í·É¿¡ ¹ÝÀÀÇÏ°Ô ÇÏ°í ½Í´Ù°í ÇսôÙ. ±×·¸´Ù¸é ¿©·¯ºÐÀº ¾Æ¸¶µµ ¾Æ·¡¿Í °°ÀÌ ÇÒ °Í ÀÔ´Ï´Ù. (Âü°í·Î ¾Æ·¡ '...' ÀÎ ºÎºÐÀº ÇÊÀÚ°¡ ¾²±â ±ÍÂú¾Æ¼­ »ý·«ÇÑ ºÎºÐ ÀÔ´Ï´Ù. )


   if (...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
     else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }
    else if(...)
    {
        ...
    }

  À½, ¾Æ¸¶µµ À§ ¼Ò½ºÄڵ带 º¸´Â »ç¶÷ÀÌ »ó´çÈ÷ ºÒÆíÇÏ°Ô ´À³¥ °ÍÀ̶ó°í »ý°¢µÇÁö ¾Ê³ª¿ä? ¹°·Ð º¸´Â ÀÌ¿¡ µû¶ó ´Ù¸£°ÚÁö¸¸ ¾Æ¸¶ ´ëºÎºÐÀÇ »ç¶÷ÀÌ ±×·¸°Ô »ý°¢ÇÒ °Í ÀÔ´Ï´Ù. ¾Æ¸¶ ½ÇÁ¦·Î »ç¶÷µé°ú ÇÔ²² ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÇÒ ¶§ À§¿Í °°Àº ¼Ò½º¸¦ ³²¹ßÇÏ°Ô µÈ´Ù¸é ÀдÂÀ̵µ ºÒÆíÇÏ°í ¾²´Â »ç¶÷µµ ¼Õ¸ñÀÌ ¸¹ÀÌ ¾ÆÇà °Í ÀÔ´Ï´Ù. (¹°·Ð Ctrl + v ½Å°øÀÌ ÀÖ±â´Â ÇÏÁö¸¸...)

  µû¶ó¼­, À§¿Í °°ÀÌ µ¿ÀÏÇÑ º¯¼ö¿¡ ´ëÇØ ºñ±³¹®ÀÌ ¹Ýº¹µÇ´Â °æ¿ì¿¡ ¾Æ·¡¿Í °°ÀÌ ±ò²ûÇÑ switch ¹®À» Àû¿ë ½Ãų ¼ö ÀÖ½À´Ï´Ù.

/* ¾÷±×·¹ÀÌµå ¹öÀü */
#include <stdio.h>
int main()
{
    int input;

    printf("¸¶ÀÌÆê ¾÷±×·¹À̵å\n");
    printf("¹«¾ùÀ» ÇÏ½Ç °ÍÀÎÁö ÀÔ·ÂÇϼ¼¿ä \n");
    printf("1. ¹äÁÖ±â \n");
    printf("2. ¾Ä±â±â \n");
    printf("3. Àç¿ì±â \n");

    scanf("%d", &input);

    switch(input)
    {
    case 1:
        printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
        break;

    case 2:
        printf("¾ÆÀÌ ½Ã¿øÇØ \n");
        break;

    case 3:
        printf("zzz \n");
        break;

    default :
        printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
        break;
    }

    return 0;
}


  ¾Æ¸¶ ÄÄÆÄÀÏ µÈ °á°ú´Â À§¿Í µ¿ÀÏÇÏ°Ô ³ª¿Ã °Í ÀÔ´Ï´Ù. ÀÌÁ¦, À§ ¼Ò½º Äڵ忡¼­ °¡Àå Áß¿äÇÑ ºÎºÐÀÎ switch ¹® ºÎºÐÀ» »ìÆ캸µµ·Ï ÇսôÙ.

  
switch(input)
    {
    case 1:
        printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
        break;

    case 2:
        printf("¾ÆÀÌ ½Ã¿øÇØ \n");
        break;

    case 3:
        printf("zzz \n");
        break;

    default :
        printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
        break;
    }

  switch ¹®ÀÇ ±âº» ±¸Á¶´Â ¾Æ·¡¿Í °°½À´Ï´Ù.

    switch(º¯¼ö)
    {
    case °ª1:
        ¸í·Éµé;
        break;
    case °ª2:
        ¸í·Éµé;
        break;
        .. (»ý·«) ..
    }


  ÀÌ ¶§, º¯¼ö ºÎºÐ¿¡´Â °ª1, °ª2, ... µé°ú ºñ±³ÇÒ º¯¼ö°¡ µé¾î°¡°Ô µË´Ï´Ù. À§ ¿¹Á¦ÀÇ °æ¿ì input À» 1 °ú 2 ¿Í 3 °ú ºñ±³ÇØ¾ß ÇßÀ¸¹Ç·Î º¯¼ö ºÎºÐ¿¡´Â input ÀÌ µé¾î°¡°Ô µË´Ï´Ù. ÀÌ ¶§ switch ¹®¿¡ »ç¿ëµÉ º¯¼ö·Î´Â ¹Ýµå½Ã Á¤¼ö µ¥ÀÌÅ͸¦ º¸°üÇÏ´Â º¯¼ö¿©¾ß ÇÕ´Ï´Ù. ´Ù½Ã¸»ÇØ 'º¯¼ö' ºÎºÐ¿¡ µé¾î°¡´Â º¯¼öµéÀÇ Å¸ÀÔÀº char, short, int, long ÁßÀÇ Çϳª¿©¾ß ÇÕ´Ï´Ù. ¸¸¾à input ÀÌ float À̳ª double À̶ó¸é ÄÄÆÄÀϽà ¿À·ù°¡ ¹ß»ýµÇ°Ô µË´Ï´Ù.

  º¯¼ö ==  °ª1 ÀÏ ¶§, °¡Àå ¸Ç À§ÀÇ case ÀÇ ¸í·ÉÀÌ ½ÇÇàµË´Ï´Ù. À§ ¿¹Á¦ÀÇ °æ¿ì 1 ÀÌ ÀԷµǸé case 1: ÀÌ ÂüÀÌ µÇ¹Ç·Î ±× case ¾ÈÀÇ ³»¿ëµéÀÌ ¸ðµÎ ½ÇÇàµË´Ï´Ù. ÀÌ ¶§ °¢ ¸í·ÉµéÀ» ¸ðµÎ ½ÇÇàÇÑ ÈÄ break ¸¦ ¸¸³ª¸é switch ¹®À» ºüÁ® ³ª°¡°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î¼­ÀÌ ÀԷµǾú´Ù¸é case 1: ÀÌ ÂüÀ̹ǷΠ printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");  ¿Í break; °¡ ½ÇÇàµÇ¾î "¾ÆÀÌ ¸ÀÀÖ¾î" ¸¦ Ãâ·ÂÇÏ°í break ¸¦ ÅëÇØ switch ¹®À» ºüÁ® ³ª°¡°Ô µË´Ï´Ù. ¸¸¾à º¯¼ö == °ª2 ¶ó¸é case °ª1 Àº ½ÇÇàµÇÁö ¾Ê°í case °ª2 ¸¸ ½ÇÇàµÇ°Ô µË´Ï´Ù.

  ¶ÇÇÑ ÁÖÀÇÇÒ Á¡À¸·Î´Â '°ª' ¿¡ À§Ä¡ÇÏ´Â °ÍµéÀÌ ¹«Á¶°Ç »ó¼ö ÀÌ¿©¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸¸¾à '°ª' ºÎºÐ¿¡ º¯¼öµéÀÌ ¿À°ÔµÈ´Ù¸é ¿À·ù°¡ ¹ß»ýÇÏ°Ô µÇ´Âµ¥ ±× ÀÌÀ¯´Â switch ¹®ÀÇ ³»ºÎÀûÀΠó¸® ¹æ¹ý ¶§¹®ÀÔ´Ï´Ù. (¾Æ·¡ÂÊ ¼³¸í µÇ¾î ÀÖ½À´Ï´Ù.)

  ¸¶Áö¸·À¸·Î switch ¹®ÀÇ default ´Â if ¹®ÀÇ else ¿Í °°Àº ¿ªÇÒÀ» ÇÕ´Ï´Ù. À̵µ Àúµµ ¾Æ´Ñ °ÍµéÀÌ ¿À´Â case ÀÌÁÒ. Áï À§ ¿¹Á¦ÀÇ °æ¿ì input ÀÌ 1 µµ 2 µµ 3 µµ ¾Æ´Ò ¶§ µµ´ÞÇÏ´Â °æ¿ì°¡ µË´Ï´Ù.

  ±×·±µ¥ À§ switch ¹®¿¡¼­ µîÀåÇÑ break ´Â ¾îµð¼­ ¸¹ÀÌ º» °Í °°Áö ¾Ê½À´Ï±î? ¸¸¾à ±×·± »ý°¢ÀÌ µé¾ú´Ù¸é ´ç½ÅÀº C ¾ð¾î °øºÎ¸¦ ¾ÆÁÖ Ãæ½ÇÈ÷ ÇÏ°í ÀÖ´Ù°í »ý°¢ µË´Ï´Ù. (¸¸¾à Àß ¸ð¸£°Ú´Ù¸é ¿©±â¸¦ Ŭ¸¯Çϼ¼¿ä) break; ¹®À» ½ÇÇàÇÏ¸é ¾Æ·¡ÀÇ ¸ðµç case µéÀ» ¹«½ÃÇÏ°í switch ¹ÛÀ¸·Î ºüÁ®³ª°¡±â ¶§¹®¿¡ ¹äÀ» ÁÖ¾ú´Âµ¥ °­¾ÆÁö°¡ '¾ÆÀÌ ¸ÀÀÖ¾î' ¶ó°í ÇÒ ÀÏÀº ¾ø°Ô µË´Ï´Ù.

  ÇÏÁö¸¸ ¸¸¾à ¿©·¯ºÐÀÌ break; ¹®À» ºü¶ß¸®°Ô µÇ¸é À§¿Í °°Àº »óȲÀÌ ¹ú¾îÁú ¼ö ÀÖ½À´Ï´Ù.

/* ½ÇÆÐÀÛ */
#include <stdio.h>
int main()
{
    int input;

    printf("¸¶ÀÌÆê ¾÷±×·¹À̵å\n");
    printf("¹«¾ùÀ» ÇÏ½Ç °ÍÀÎÁö ÀÔ·ÂÇϼ¼¿ä \n");
    printf("1. ¹äÁÖ±â \n");
    printf("2. ¾Ä±â±â \n");
    printf("3. Àç¿ì±â \n");

    scanf("%d", &input);

    switch(input)
    {
    case 1:
        printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");

    case 2:
        printf("¾ÆÀÌ ½Ã¿øÇØ \n");

    case 3:
        printf("zzz \n");

    default :
        printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");

    }

    return 0;
}

¼º°øÀûÀ¸·Î ÄÄÆÄÀÏ ÇÑ´Ù¸é



¿Í °°ÀÌ ¿ôÁö ¾ÊÀ» ¼ö ¾ø´Â »óȲÀÌ ¹ú¾îÁý´Ï´Ù. ¿©·¯ºÐµéÀÌ 1 À» ÀÔ·ÂÇÑ´Ù¸é case 1: ÀÌ ½ÇÇàµÇ¾î ±× ³»¿ëµéÀÌ ¸ðµÎ ½ÇÇàµÇÁö¸¸ break ¹®À¸·Î switch ¹®À» ºüÁ® ³ª°¡Áö ¸øÇؼ­ ¾Æ·¡ case µé ±îÁö ÁÙÁÙÀÌ ½ÇÇàµÇ¾î À§¿Í °°Àº ²ÃÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

/* ¿µ¾î ¸»Çϱâ */
#include <stdio.h>
int main()
{
    char input;

    printf("(¼Ò¹®ÀÚ) ¾ËÆĺª Àбâ\n");
    printf("¾ËÆĺª : ");

    scanf("%c", &input);

    switch(input)
    {
    case 'a':
        printf("¿¡ÀÌ \n");
        break;

    case 'b':
        printf("ºñ \n");
        break;

    case 'c':
        printf("¾¾ \n");
        break;

    default :
        printf("Á˼ÛÇØ¿ä.. ¸Ó¸®°¡ ³ªºü¼­ ¸ø Àоî¿ä  \n");
        break;

    }

    return 0;
}

  ¼º°øÀûÀ¸·Î ÄÄÆÄÀÏ ÇÏ¿´´Ù¸é



¿Í °°ÀÌ ³ª¿É´Ï´Ù.

  »ç½Ç, ¿©±â¿¡ Àǹ®ÀÌ µå´Â »ç¶÷µéµµ ÀÖ½À´Ï´Ù. '¾Æ±î À§¿¡¼­ switch ¹®Àº Á¤¼ö µ¥ÀÌÅ͸¸ ó¸®ÇÑ´Ù°í Çߴµ¥ ¿Ö ¿©±â¼­´Â ¹®ÀÚ µ¥ÀÌÅ͵µ 󸮰¡ µÇ´Â °ÍÀΰ¡?' ±×·±µ¥, ¾ÈŸ±õ°Ôµµ ÀÌ·¯ÇÑ Àǹ®ÀÌ 5 ÃÊ À̳»·Î ÇØ°áµÇÁö ¾ÊÀ¸¸é ¾Æ¸¶ ¾Õ¿¡¼­ ¹è¿î ³»¿ëÀ» ±î¸ÔÀ¸¼ÌÀ» °ÍÀÔ´Ï´Ù. (±× ³»¿ëÀ» º¸·Á¸é ¿©±â¸¦ Ŭ¸¯Çϼ¼¿ä) ¿Ö³ÄÇϸé ÄÄÇ»ÅÍ´Â ¹®ÀÚ¿Í ¼ýÀÚ¸¦ ±¸ºÐ ¸øÇÕ´Ï´Ù. ÄÄÇ»ÅÍ´Â ¹®ÀÚ¸¦ ¸ðµÎ ¼ýÀڷΠó¸®ÇÑ µÚ, ¿ì¸®¿¡°Ô º¸¿©ÁÙ ¶§ ¿¡¸¸ ¹®ÀÚ·Î º¸¿©ÁÖ´Â °ÍÀÌÁö¿ä. µû¶ó¼­, ¹®ÀÚ = Á¤¼ö ¶ó°í »ý°¢Çصµ °ÅÀÇ ¹«¹æÇÕ´Ï´Ù.

  ÀÌÂë switch ¹®À» ¹è¿ì°í ³ª¸é µå´Â Àǹ®ÀÌ Çϳª ÀÖ½À´Ï´Ù.

"Á¤¸»·Î switch ¹®ÀÌ ¿ì¸®¿¡°Ô ÇÊ¿äÇÑ°¡? if - else ·Î ´Ù ÇØ°áµÇ´Âµ¥ ¿Ö ±ÍÂú°Ô switch ¹®À» ¸¸µé¾úÀ»±î? Â÷ÀÌ´Â ´ÜÁö °ÑÀ¸·Î ¾ó¸¶³ª ±ò²ûÇÑÁö°¡ ´Ù¸¦ »ÓÀε¥... ³»ºÎÀûÀ¸·Î switch ¹®°ú if-else ¿Í´Â Â÷ÀÌ°¡ ¾ø³ª¿ä?"

  Á¤¸»·Î, ÈǸ¢ÇÑ »ý°¢À̶ó°í »ý°¢ÇÕ´Ï´Ù. À§ Áú¹®¿¡ ´ëÇÑ ´äº¯À» Á¤È®ÇÏ°Ô ÀÌÇØÇÏ·Á¸é ¾î¼Àºí¸®¾î¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿ä·Î ÇÕ´Ï´Ù.
(Âü°í·Î if ¹®°ú switch ¹®ÀÇ Â÷ÀÌ¿¡ ´ëÇÑ ¼³¸íÀ» ÀÚ¼¼ÇÏ°Ô Àß ´Ù·ç´Â °÷ : http://blog.naver.com/kki2406?Redirect=Log&logNo=80041410085 )

À§¿¡ ¸µÅ© °ÉÀº »çÀÌÆ®¿¡ µé¾î°¡ ³»¿ëÀ» ¸ðÁ¶¸® ÀÌÇØÇÑ´Ù¸é ´õÇÒ ³ªÀ§ ¾øÀÌ ÁÁ°ÚÀ¸³ª ¾Æ¸¶ C ¾ð¾î¸¦ óÀ½ ¹è¿ì´Â »ç¶÷µéÀÇ °æ¿ì °ÅÀÇ ÀÌÇظ¦ ¸øÇÒ °ÍÀÌ´Ï Á¦°¡ °£´ÜÇÏ°Ô ¼³¸í µå¸®°Ú½À´Ï´Ù. (¸¸¾à ¾Æ·¡ÀÇ ³»¿ëÀ» ÀÌÇØÇÏÁö ¸øÇÏ´õ¶ó°í ±×³É ³Ñ¾î°¡¼¼¿ä. »ç½Ç ¾î¼Àºí¸®¾î¸¦ ¹è¿ìÁö ¾ÊÀº ÀÌ»ó ÀÌÇØÇϱâ Èûµì´Ï´Ù)


switch ¹® ÀÌ¿ë

if ¹®




  À§ µÎ ±×¸²Àº °°Àº ¼Ò½º Äڵ带 switch ¹®°ú if ¹®À» ÀÌ¿ëÇÏ¿© ³ªÅ¸³­ °ÍÀÔ´Ï´Ù. »ç½Ç, ¿ÜÇüÀûÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀº Â÷ÀÌ°¡ ¾ø½À´Ï´Ù. ´ÜÁö ³»ºÎÀûÀ¸·Î ¾î¶»°Ô 󸮵dzİ¡ ´Ù¸¦ »ÓÀÌÁö¿ä.

  ÀÏ´Ü if ¹®ÀÇ °æ¿ì °¢ °æ¿ì ¸¶´Ù °ªµéÀ» ºñ±³ ÇÕ´Ï´Ù. À§ °æ¿ì °ªÀ» 3 ¹ø ºñ±³Çϰڳ׿ä. ¿Ö³ÄÇϸé if °¡ 1 ¹ø, else if °¡ 2 ¹øÀÌ°í else ÀÇ °æ¿ì °ªÀÇ ºñ±³ ¾øÀÌ ÀÚµ¿À¸·Î 󸮵Ǵ °ÍÀ̹ǷΠÃÑ 3 ¹ø ºñ±³ÇÏ°Ô µË´Ï´Ù. Áï, if ¹®À» ÀÌ¿ëÇÏ¸é °¢ case ÀÇ °æ¿ì ºñ±³ÇÏ°Ô µÇ¹Ç·Î ÃÖ¾ÇÀÇ °æ¿ì ¸ðµç case ¿¡ ´ëÇØ °ªÀ» ºñ±³ÇÏ´Â ¿¬»ê (¾î¼Àºí¸®¾î¿¡¼­´Â CMP ¿¬»êÀ» ÇÕ´Ï´Ù.) À» ½ÃÇàÇÏ°Ô µË´Ï´Ù.

  ±×·±µ¥ switch ¹®Àº »ç¹µ ´Ù¸¨´Ï´Ù. switch ÀÇ °æ¿ì ³»ºÎÀûÀ¸·Î jump table À̶ó´Â °ÍÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ ¶§, jump table ÀÇ Å©±â´Â case ÀÇ °ªµé¿¡ µû¶ó ´Þ¶óÁö´Âµ¥, ¿¹¸¦ µé¾î¼­ ¾î¶² switch ¹®ÀÇ °æ¿ì case 1: ~ case 10: ±îÁö ÀÖ¾ú´Ù°í ÇսôÙ. ±×·¸´Ù¸é jump table ¿¡´Â °ªµéÀÌ 0 ºÎÅÍ 9 ±îÁö µé¾î°¡°Ô µË´Ï´Ù. ¿©±â¼­ ¿ì¸®´Â ¿Ö case °ª: ÇÒ ¶§, '°ª' ºÎºÐ¿¡ º¯¼ö°¡ À§Ä¡ÇÏ¸é ¾ÈµÇ´ÂÁö ¾Ë°Ô µË´Ï´Ù. jump table Àº ÇÁ·Î±×·¥ Ãʱ⿡ ÀÛ¼º µÇ±â ¶§¹®¿¡ ÀÌ¹Ì switch ¹®ÀÌ ½ÇÇàµÇ±â Àü¿¡ jump table ÀÌ ÀÛ¼ºµÇ°Ô µË´Ï´Ù. µû¶ó¼­, '°ª' ºÎºÐ¿¡ º¯¼ö°¡ µé¾î°¡°Ô µÇ¸é jump table ¿¡ ¹«¾ùÀÌ ¿ÃÁö ¾Ë ¼ö ¾øÀ¸¹Ç·Î º¯¼ö¸¦ »ç¿ëÇÏ¸é ¾ÈµÇ´Â °ÍÀÔ´Ï´Ù.

  ÀÌ °ªµéÀº ¹«¾ùÀ» ÀǹÌÇÏ³Ä¸é °¢ case º°·Î ¸í·ÉµéÀÌ À§Ä¡ÇÑ °÷ÀÇ ÁÖ¼Ò¸¦ °¡¸®Å°´Âµ¥ ¿¹¸¦ µé¾î¼­ 1 ÀÎ ÁöÁ¡À¸·Î Á¡ÇÁÇÏ°Ô µÇ¸é "¾ÆÀÌ ½Ã¿øÇØ" °¡ ³ª¿À°í 0 ÀÎ ÁöÁ¡À¸·Î Á¡ÇÁÇÏ°Ô µÇ¸é "¾ÆÀÌ ¸ÀÀÖ¾î" ¶ó°í Ãâ·ÂÇ϶ó´Â ³»¿ëÀÇ ¸í·É¹®µéÀÌ ³ª¿É´Ï´Ù. ÀÌÁ¦, º¯¼öÀÇ °ª¿¡ µû¶ó º¯¼ö°¡ 3 À̶ó¸é jump table ÀÇ 3 ¹ø° ¿ø¼Ò¸¦ ã¾Æ¼­ ±× °ª¿¡ ÇØ´çÇÏ´Â °÷À¸·Î Á¡ÇÁÇÏ°Ô µË´Ï´Ù.
(½ÇÁ¦·Î switch ¹®ÀÌ Ã³¸®µÇ´Â °úÁ¤Àº À̺¸´Ù ¾à°£ ´õ º¹ÀâÇÏÁö¸¸ ¾î¼Àºí¸®¾î¸¦ ¹è¿ìÁö ¾ÊÀº ÇöÀç »óȲÀ¸·Î½á´Â ÃÖ¼±À̶ó »ý°¢µË´Ï´Ù)

  µû¶ó¼­, switch ¹®À» ÀÌ¿ëÇϸé case ¿¡ µû¶ó CMP ¿¬»êÀÌ ´Ã¾î³ª´Â °ÍÀÌ ¾Æ´Ï¶ó jump table ÀÇ Å©±â¸¸ Ä¿Áú »Ó ¼º´É¿¡ À־´Â ÀüÇô ¿µÇâÀ» ¹ÞÁö ¾Ê°Ô µË´Ï´Ù.

  °á·ÐÀûÀ¸·Î À̾߱â ÇÏÀÚ¸é switch ¹®ÀÌ È¿°úÀûÀ¸·Î 󸮵DZâ À§Çؼ­´Â case ÀÇ '°ª' µéÀÇ Å©±â°¡ ±×´ÙÁö Å©Áö ¾Ê¾Æ¾ß ÇÏ°í, '°ª' µéÀÌ ¼øÂ÷ÀûÀ¸·Î Á¤·ÄµÇ¾î ÀÖ°í, ±× '°ª' ³¢¸®ÀÇ Â÷ÀÌ°¡ Å©Áö ¾Ê´Ù¸é ÃÖ°í·Î È¿À²ÀûÀÎ switch ¹®À» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù

  Hit : 8599     Date : 2013/06/15 01:47



    
     [°øÁö] °­Á¸¦ ¿Ã¸®½Ç ¶§´Â ¸»¸Ó¸®¸¦ ´Þ¾ÆÁÖ¼¼¿ä^¤Ñ^ [29] ¸Û¸Û 02/27 18782
1580   °í¼ö´ÔµéÀÇ µµ¿òÀ» ¹Þ°í ½Í½À´Ï´Ù     vbnm111
02/11 247
1579   ¸®´ª½º Ä¿³Î 2.6 ¹öÀü ÀÌÈÄÀÇ LKM     jdo
07/25 742
1578   ½©ÄÚµå ¸ðÀ½     ÇØÅ·ÀßÇÏ°í½Í´Ù
01/15 1570
1577   Call by value VS Call by Reference     ÇØÅ·ÀßÇÏ°í½Í´Ù
01/15 944
1576   (²Ä¼ö) L.O.B Çѹ濡 Ŭ¸®¾îÇϱâ[2]     ÇØÅ·ÀßÇÏ°í½Í´Ù
01/14 1290
1575   towelroot.c (zip) ÄÚ¸àÆÃ.[1]     scube
08/18 3813
1574   levitator.c (¾Èµå·ÎÀÌµå ·çÆÃ) °ø°Ý ºÐ¼® ¼Ò½º ÄÚµå °øÀ¯.[4]     scube
08/17 3719
1573   ¹«·á Á¤º¸º¸¾È ±â¼úÀÎÀç ¾ç¼º °úÁ¤ ±³À°»ý ¸ðÁý     chanjung111
06/17 4525
1572   K-Shield ÁִϾî 5±â ¸ðÁý     lrtk
06/17 4252
1571   [ÆÁ] ÆÄÀ̽ã 2¼Ò½º¸¦ 3À¸·Î º¯°æÇØÁÖ´Â »çÀÌÆ®[3]     ÇѽÂÀç
05/13 3959
1570   ±¸±Û ¹é¸µÅ© ÀÛ¾÷ Áú¹®¿ä     wkatnxka
03/30 3389
1569   [ÆÁ] ¿ìºÐÅõ ¹Ì·¯¸µ¼­¹ö     ÇѽÂÀç
03/09 4083
1568 ºñ¹Ð±ÛÀÔ´Ï´Ù  °¨À»¸øÀâ°Ú³×¿ä¤Ì¤Ì     À×À×À×
01/15 3
1567   µ¥ºñ¾È °è¿­ ¸®´ª½º ÀÇÁ¸¼º ±úÁ³À»¶§ ÇØ°á¹ý     ÇѽÂÀç
11/27 4569
1566   È«º¸ÇÕ´Ï´Ù. ½Å»ý º¸¾ÈÄ¿¹Â´ÏƼÀÔ´Ï´Ù.     kimwoojin0952
10/26 4289
1565   ½Å±âÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î[3]     koreal33t
09/06 4689
1564   À©µµ¿ì,¸®´ª½º¿¡¼­ ³» ip¸¦ È®ÀÎÇØ º¸ÀÚ [1]     koreal33t
09/06 3888
1563   CTF »çÀÌÆ®[1]     koreal33t
09/06 4548
1562   ÀÚ°ÝÁõ (¹®Á¦)»çÀÌÆ® [2]     koreal33t
09/06 4369
1 [2][3][4][5][6][7][8][9][10]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org