½Ç¼öÇϱ⠽¬¿î ÈÄÀ§Áõ°¨¿¬»êÀÚ
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.


Áõ°¨¿¬»êÀÚ°¡ ÇÇ¿¬»êÀÚ¿¡ ºÙ´Â À§Ä¡¿¡ µû¶ó¼­ ¹Ì¹¦ÇÑ Â÷À̰¡ ÀÖÀ» ¼ö ÀÖ´Ù´Â°Ç ¾Ë°í ÀÖ´Â°Ç Çѵ¥, Â÷À̰¡ ¹Ì¹¦ÇÏ´Ù º¸´Ï ½Ç¼ö¸¦ ÇÒ °æ¿ì°¡ »ý±ä´Ù. À̸¦Å×¸é ¾Æ·¡¿Í °°Àº °æ¿ì´Ù.
int i = 1; 
int idx = 0; 
while(1) 
{ 
    idx = i++; 
    //  ¾î¶²½ÄÀ¸·Îµç idx¸¦ ÀÌ¿ëÇÑ´Ù. 
} 
 

ÀÌ °æ¿ì ÇÁ·Î±×·¡¸Ó°¡ ÀǵµÇÏ´Â ¹Ù´Â idx¿¡ 2°¡ ´ëÀԵǴ °ÍÀÓÀÌ ºÐ¸íÇÏ´Ù. ±×·¯³ª idx¿¡´Â 1ÀÌ ´ëÀԵȴÙ. ÀÌ·¯ÇÑ ½Ç¼ö´Â ´Ù¸¥ ¿¹¿¡¼­µµ ã¾Æº¼ ¼ö ÀÖ´Ù.
#define MAX(A,B) ( (A) > (B) ) ? (A) : (B) 
MAX(x++, 2) 
 
À§ÀÇ °æ¿ìµµ ¸¶Âù°¡Áö´Ù. ¸ÅÅ©·Î ÇÔ¼ö¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀº Æò¼Ò¿¡´Â ºÐ¸íÈ÷ ÀÎÁöÇϰí ÀÖ°ÚÁö¸¸, »ç¶÷ÀÌ´Ù º¸´Ï »óȲ¿¡ µû¶ó ¸í¹éÇØ º¸ÀÌ´Â ½Ç¼ö¸¦ ÇÏ°Ô µÈ´Ù. Æò¼Ò¿¡ inline templatized¸¦ Áö¿øÇÏ´Â [http]C++°ú °°Àº ¾ð¾î¸¦ »ç¿ëÇϰí ÀÖ¾ú´Ù¸é, º°»ý°¢¾øÀÌ À§¿¡¼­¿Í °°Àº ¹ö±×¸¦ °¡Áö´Â ¸ÅÅ©·Î¸¦ ÀÛ¼ºÇÒ ¼öµµ ÀÖ´Â °ÍÀÌ´Ù.

½Ç¼ö¸¦ ÁÙÀÌ´Â °¡Àå È®½ÇÇÑ ¹æ¹ýÀº '''½Ç¼ö¸¦ Á÷Á¢ °æÇèÇØ¼­ »À¼Ó¿¡ »õ±â°Å³ª"', Áõ°¨¿¬»êÀÚ´Â Á¶½ÉÇØ¼­ ½á¾ßµÈ´Ù´õ¶ó. ÈÄÀ§ Áõ°¨¿¬»êÀÚ¸¦ ¾µ°æ¿ì ´ëÀÔÀÌ ¸ÕÀú ÀϾ°Ô µÈ´Ù´õ¶ó¶ó´Â ½ÄÀ¸·Î ¾Æ´Â°Ô ¾Æ´Ñ ÄÄÇ»ÅͼöÁØ¿¡¼­ ¾î¶»°Ô ó¸®ÇÏ´ÂÁö¸¦ ÀÌÇØÇÏ¸é µÉ°ÍÀÌ´Ù. ÀÌ·¸´Ù°í ÇÏ´õ¶óµµ ÀÌ·¯ÇÑ ·ùÀÇ ½Ç¼ö´Â °è¼Ó ¹ß»ýÇϰÚÁö¸¸, ÁÙÀÏ ¼ö´Â ÀÖÀ» °ÍÀÌ´Ù.

ÇØ¼­, Áõ°¨¿¬»êÀÚ°¡ ¼±À§¿¡ ¾²ÀÌ´Â °Í°ú ÈÄÀ§¿¡ ¾²ÀÌ´Â Â÷À̸¦ ¾î¼Àºí¸®¾î ¼öÁØ¿¡¼­ °íÂûÇØº¸±â·Î Çß´Ù. Å×½ºÆ®¸¦ À§Çؼ­ 2°³ÀÇ C Äڵ带 ÁغñÇß´Ù.
// ù¹øÂ° Å×½ºÆ® ÄÚµå : ¼±À§Çü Áõ°¨¿¬»êÀÚ 
#include <stdio.h> 
 
int main() 
{ 
    int a = 0; 
    int b = 1; 
 
    a = ++b; 
} 
 
// µÎ¹øÂ° Å×½ºÆ® ÄÚµå : ÈÄÀ§Çü Áõ°¨¿¬»êÀÚ 
#include <stdio.h> 
 
int main() 
{ 
    int a = 0; 
    int b = 1; 
 
    a = b++; 
} 
 
 
°¢°¢ test1.c ¿Í test2.c ·Î ÀúÀåÇÑ´ÙÀ½ gcc ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇØ¼­ ¾î¼Àºí¸® Äڵ带 »ý¼ºÇß´Ù. gcc´Â 3.2.2 ¹öÀüÀ» »ç¿ëÇß´Ù.
# gcc -S test1.c 
# gcc -S test2.c 
 

´ÙÀ½Àº ¸¸µé¾îÁø ¾î¼Àºí¸®ÄÚµå´Ù. 30¶óÀÎ Á¤µµÀÇ ¾î¼Àºí¸® Äڵ尡 »ý¼ºµÇ¾ú´Ù. ±× Áß Áß¿äÇÑ ºÎºÐ¸¸À» °¡Áö°í Â÷ÀÌÁ¡¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï Çß´Ù.
# test1.s : ¼±À§Çü Áõ°¨¿¬»êÀÚ
movl $0, -4(%ebp) # °ª 0À» ½ºÅÃÀÇ Ã¹¹øÂ°¿¡ º¹»ç Çß´Ù. a = 0;
movl $1, -8(%ebp) # °ª 1À» ½ºÅÃÀÇ µÎ¹øÂ°¿¡ º¹»ç Çß´Ù. b = 1;
leal -8(%ebp), %eax
incl (%eax) # µÎ¹øÂ° ½ºÅÿ¡ ÀÖ´Â °ªÀ» 1¸¸Å­ Áõ°¡ ½ÃÄ×´Ù. b++;
movl -8(%ebp), %eax
movl %eax, -4(%ebp) # µÎ¹øÀç ½ºÅÿ¡ ÀÖ´Â °ªÀ» ½ºÅÃÀÇ Ã¹¹øÂ°¿¡ º¹»çÇß´Ù.
leave # CÇü½ÄÀ¸·Î Ç¥ÇöÇÏÀÚ¸é a = b ÀÌ°í °á±¹ a¿¡ 2°¡ º¹»çµÈ´Ù.

# test2.s : ÈÄÀ§Çü Áõ°¨¿¬»êÀÚ
movl $0, -4(%ebp)
movl $1, -8(%ebp)
movl -8(%ebp), %eax
movl %eax, -4(%ebp) # µÎ¹øÀç ½ºÅÿ¡ ÀÖ´Â °ªÀ» ½ºÅÃÀÇ Ã¹¹øÂ°¿¡ ÀúÀåÇß´Ù. a = b
leal -8(%ebp), %eax
incl (%eax) # µÎ¹øÂ° ½ºÅÿ¡ ÀÖ´Â °ªÀ» 1¸¸Å­ Áõ°¡ ½ÃÄ×´Ù. b++
# ±×·¯³ª bÀÇ °ªÀ» a¿¡ º¹»çÇÏ´Â °úÁ¤ÀÌ ºüÁ®ÀÖ´Ù. °á±¹ a´Â 1ÀÌ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.