int x = 2, y = 10;
int result = x++ * 2 + --y - 5 + x * ( y % 2 );
ÀÌ°É µð½º¾î¼Àºí Çغ¸¸é
mov eax, y
sub eax, 1
mov y, eax ; y--
mov ecx, y
and ecx, 1 ; ecx = y % 2
imul ecx, x ; ecx = x * ( y % 2 )
mov edx, x
mov eax, y
lea edx, [eax+edx*2] ; edx = (y) + (x * 2)
lea eax, [edx+ecx-5] ; eax = ( x * ( y % 2 ) ) + ( y + x * 2) - 5
mov result, eax ; result = eax
mov edx, x
add edx, 1
mov x, edx ; x++
VS2013ÀÇ °æ¿ì ÀüÀ§¿¬»êÀº expression ½ÃÀÛÀü¿¡ °è»êÇÕ´Ï´Ù.
int x = 3;
int result = ++x + ++x + ++x;
±×·¡¼ ÀÌ ¹®Àå ½ÇÇà ÈÄÀÇ result´Â 18
x++;
x++;
x++;
result = x + x + x;
ÀÌ·¸°Ô °è»êÇÑ´Ù°í »ý°¢ÇÏ¸é µÇ°Ú³×¿ä.
¹Ý´ë·Î ÈÄÀ§¿¬»êÀº expressionÀÌ ³¡³ ÈÄ¿¡ °è»êÇÕ´Ï´Ù.
int x = 3;
int result = x++ + x++ + x++;
ÀÌ ¹®ÀåÀÇ °á°ú´Â result = 9
result = x + x + x;
x++;
x++;
x++;
ÀÌ·¸°Ô °è»êÇÕ´Ï´Ù.
±×·¡¼ Ȥ½Ã Ç¥ÁØ¿¡ ¹º°¡ Ãß°¡µÈ°Ô ÀÖ³ªÇÏ°í ã¾ÆºÃ´Âµ¥, ¿©ÀüÈ÷ C/C++Àº À̺κп¡ ´ëÇؼ Á¤ÀÇÇÏÁö ¾Ê°í Àֳ׿ä.
±×·¯´Ï Àú·± Äڵ带 ¾²´Â »ç¶÷ÇÏ°í´Â ³îÁö ¸¶¼¼¿ä (Á¤º¸)
Àâ´ã | 1156¸íÀÌ Àоú¾î¿ä. 18.116.60.62