¢¹ A7.4 ´ÜÇ׿¬»êÀÚ (Unary Operator)
´ÜÇ׿¬»êÀÚ°¡ ÀÖ´Â ¼ö½ÄÀº ¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊÀ¸·Î ¹ÀÔ´Ï´Ù.
unary-expression:
postfix-expression
++ unary-expression
-- unary-expression
unary-operator cast-expression
sizeof unary-expression
sizeof ( type-name )
unary-operator: one of
& * + - ~ ! |
¢¹ A7.4.1 Á¢µÎ Áõ°¡¿¬»êÀÚ (Prefix Incrementation Operator)
++ ³ª -- ¿¬»êÀÚ°¡ ¾Õ¿¡ ºÙ´Â ¼ö½ÄÀº ´ÜÇ×¼ö½Ä (unary expression) ÀÔ´Ï´Ù.
ÇÇ¿¬»êÀÚ´Â 1 ¸¸Å Áõ°¡(++)µÇ°Å³ª °¨¼Ò(--)µË´Ï´Ù. ¼ö½ÄÀÇ °ªÀº Áõ°¨Ã³¸®µÈ
°ªÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â Áº¯°ªÀ̾î¾ß ÇÕ´Ï´Ù; ÇÇ¿¬»êÀÚ¿Í ¿¬»êÀÚÀÇ
¼¼¼¼ÇÑ °Íµé¿¡ ´ëÇÑ Á¦¾àÀº µ¡¼À¿¬»êÀÚ (A7.7) ¿Í ´ëÀÔ¿¬»êÀÚ (A7.17) ¸¦
Âü°íÇϽñ⠹ٶø´Ï´Ù. °á°ú´Â Áº¯°ªÀÌ ¾Æ´Õ´Ï´Ù.
¢¹ A7.4.2 ¹øÁö¿¬»êÀÚ (Address Operator)
´ÜÇ× & ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚÀÇ ÁÖ¼Ò(¹øÁö)¸¦ ÃëÇÕ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â ºñÆ®Çʵå (bit-field) ³ª register ·Î
¼±¾ðµÈ ´ë»óü¸¦ ÂüÁ¶ÇÏÁö ¾Ê´Â Áº¯°ªÀ̰ųª ȤÀº ÇÔ¼öÇüÀ̾î¾ß
ÇÕ´Ï´Ù. °á°ú´Â Áº¯°ª¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ´ë»óü³ª ÇÔ¼öÀÇ, Æ÷ÀÎÅÍÀÔ´Ï´Ù.
ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÌ T ¶ó¸é, °á°ú´Â TÇü Æ÷ÀÎÅÍÀÔ´Ï´Ù.
¢¹ A7.4.3 °£Á¢ÁöÁ¤ ¿¬»êÀÚ (Indirection Operator)
´ÜÇ× * ¿¬»êÀÚ´Â °£Á¢ÁöÁ¤À» ÀǹÌÇϰí, ÇÇ¿¬»êÀÚ°¡ °¡¸£Å°´Â ´ë»óü³ª ÇÔ¼ö¸¦
¹ÝȯÇÕ´Ï´Ù. ¸¸¾à ÇÇ¿¬»êÀÚ°¡ »ê¼úÇü, ±¸Á¶Ã¼, °ø¿ëü, Æ÷ÀÎÅ͸¦ °¡¸£Å°´Â
Æ÷ÀÎÅͶó¸é °á°ú´Â Áº¯°ªÀÔ´Ï´Ù. ¼ö½ÄÀÇ µ¥ÀÌÅÍÇüÀÌ "TÇü Æ÷ÀÎÅÍ" ¶ó¸é
°á°úÀÇ µ¥ÀÌÅÍÇüÀº TÇüÀÔ´Ï´Ù.
¢¹ A7.4.4 ´ÜÇ× Ç÷¯½º ¿¬»êÀÚ (Unary Plus Operator)
´ÜÇ× + ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̾î¾ß ÇÏ°í °á°ú´Â ÇÇ¿¬»êÀÚÀÇ °ª
±×´ë·Î ÀÔ´Ï´Ù. Á¤¼öÇü ÇÇ¿¬»êÀÚ (integral) ´Â Á¤¼öÁø±Þ (integral promotion) À» °ÅĨ´Ï´Ù.
°á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ (promoted) ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.
| |
´ÜÇ× + ¿¬»êÀÚ´Â ANSI Ç¥Áؾȿ¡¼ »õ·Î¿î °ÍÀÔ´Ï´Ù.
´ÜÇ× - ¿¬»êÀÚ¿ÍÀÇ ´ëμºÀ» À§ÇØ »õ·Ó°Ô Ãß°¡µÇ¾ú½À´Ï´Ù. |
¢¹ A7.4.5 ´ÜÇ× ¸¶À̳ʽº ¿¬»êÀÚ (Unary Minus Operator)
´ÜÇ× - ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̾î¾ß ÇÏ°í °á°ú´Â ÇÇ¿¬»êÀÚÀÇ
À½¼ö°ª ÀÔ´Ï´Ù. Á¤¼öÇü ÇÇ¿¬»êÀÚ (integral) ´Â Á¤¼öÁø±Þ (integral promotion) À» °ÅĨ´Ï´Ù.
ºÎÈ£¾ø´Â °ªÀÇ À½¼ö°ª (the negative of an unsigned quantity) Àº Áø±ÞµÈ µ¥ÀÌÅÍÇüÀÇ
ÃÖ´ë°ª¿¡¼ Áø±ÞµÈ °ªÀ» »©°í 1À» ´õÇØ¼ ±¸ÇÕ´Ï´Ù; ÇÏÁö¸¸ 0 ÀÇ À½¼ö°ªÀº 0 ÀÔ´Ï´Ù.
°á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.
¢¹ A7.4.6 1ÀÇ º¸¼ö ¿¬»êÀÚ (One's Complement Operator)
´ÜÇ× ~ ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â Á¤¼öÇü (integral) À̾î¾ß Çϰí, °á°ú´Â ÇÇ¿¬»êÀÚÀÇ
1ÀÇ º¸¼öÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ¿¡´Â Á¤¼öÁø±ÞÀÌ ÀϾ´Ï´Ù. ¸¸¾à ÇÇ¿¬»êÀÚ°¡
ºÎÈ£¾ø´Â ÇüÀ̸é, °á°ú´Â Áø±ÞµÈ µ¥ÀÌÅÍÇüÀÇ ÃÖ´ë°ª¿¡¼ ±× °ªÀ» »©¼ ±¸ÇÕ´Ï´Ù.
¸¸¾à ºÎÈ£ÀÖ´Â ÇÇ¿¬»êÀÚ¶ó¸é ´ëÀÀÇÏ´Â ºÎÈ£¾ø´Â ÇüÀ¸·Î º¯È¯Çؼ ~ ¿¬»êÀÚ¸¦
Àû¿ëÇÑ ÈÄ¿¡ ´Ù½Ã ºÎÈ£ÀÖ´Â ÇüÀ¸·Î µÇµ¹·Á ±¸ÇÕ´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº
Áø±ÞµÈ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.
¢¹ A7.4.7 ³í¸® ºÎÁ¤ ¿¬»êÀÚ (Logical Negation Operator)
! ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̰ųª Æ÷ÀÎÅÍ¿©¾ß Çϰí, °á°ú´Â ÇÇ¿¬»êÀÚ°¡
0 À̸é 1 À̰í, ¾Æ´Ï¶ó¸é 0 ÀÔ´Ï´Ù. °á°ú´Â int ÇüÀÔ´Ï´Ù.
¢¹ A7.4.8 sizeof ¿¬»êÀÚ (Sizeof Operator)
sizeof ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚ µ¥ÀÌÅÍÇüÀÇ ´ë»óü¸¦ ÀúÀåÇϴµ¥ ÇÊ¿äÇÑ ¹ÙÀÌÆ®¼ö¸¦
°è»êÇØ ÁÝ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â °è»êµÇÁö ¾ÊÀº (not evaluated) ¼ö½ÄÀ̰ųª °ýÈ£¿¡ ½×ÀÎ
µ¥ÀÌÅÍÇü À̸§ÀÔ´Ï´Ù. sizeof ¿¬»êÀÚ°¡ char ¿¡ Àû¿ëµÈ´Ù¸é °á°ú´Â 1 ÀÔ´Ï´Ù;
¹è¿¿¡ Àû¿ëÇßÀ» ¶§´Â ¹è¿ÀÇ ÃÑ ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù. ±¸Á¶Ã¼³ª °ø¿ëü¿¡
Àû¿ëÇßÀ» ¶§ÀÇ °á°ú´Â, ´ë»óü¸¦ ¹è¿ÀÇ ¿ä¼Ò·Î ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ ºó°ø°£ (padding) À» Æ÷ÇÔÇÑ ¹ÙÀÌÆ®¼ö ÀÔ´Ï´Ù:
n °³ÀÇ ¿ä¼Ò (element) ¸¦ °®´Â ¹è¿ÀÇ Å©±â´Â ÇÑ ¿ä¼ÒÀÇ Å©±â¿¡ n À» °öÇÑ °ÍÀÔ´Ï´Ù.
sizeof ¿¬»êÀÚ´Â ÇÔ¼ö³ª ºÒ¿ÏÀüÇÑ µ¥ÀÌÅÍÇü (incomplete type), ºñÆ®Çʵ忡´Â Àû¿ëµÉ
¼ö ¾ø½À´Ï´Ù. ¿¬»êÀÇ °á°ú´Â ºÎÈ£¾ø´Â Á¤¼ö»ó¼ö (integral) ÀÌÁö¸¸, Á¤È®ÇÑ µ¥ÀÌÅÍÇüÀº
ÄÄÆÄÀÏ·¯¸¶´Ù ´Ù¸¨´Ï´Ù (implementation-defined). Ç¥ÁØ Çì´õÆÄÀÏ <stddef.h> ¿¡´Â ÀÌ µ¥ÀÌÅÍÇüÀÌ
size_t ¶ó´Â µ¥ÀÌÅÍÇüÀ¸·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù. (ºÎ·Ï B Âü°í)
¢¹ A7.5 ij½ºÆ® (Cast)
µ¥ÀÌÅÍÇüÀÇ À̸§ÀÌ °ýÈ£¿¡ ½×¿© ¼±ÇàµÇ´Â ´ÜÇ× ¼ö½ÄÀº, ¼ö½ÄÀÇ °ªÀ» ±× µ¥ÀÌÅÍÇüÀ¸·Î
º¯È¯ÇØ ÁÝ´Ï´Ù.
cast-expression:
unary-expression
( type-name ) cast-expression |
ÀÌ·¯ÇÑ ±¸Á¶¸¦ ij½ºÆ® (cast) ¶ó°í ÇÕ´Ï´Ù. µ¥ÀÌÅÍÇü¸í (type name) Àº A8.8 Àý¿¡¼ ¼³¸íÇÕ´Ï´Ù.
º¯È¯ÀÇ ¿µÇâÀº A6 Àý¿¡¼ ¼³¸íÇß½À´Ï´Ù. ij½ºÆ®µÈ ¼ö½ÄÀº Áº¯°ªÀÌ ¾Æ´Õ´Ï´Ù.
¢¹ A7.6 °ö¼À¿¬»êÀÚ (Multiplicative Operator)
*, /, % °°Àº °ö¼À¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¹ÀÔ´Ï´Ù.
multiplicative-expression:
cast-expression
multiplicative-expression * cast-expression
multiplicative-expression / cast-expression
multiplicative-expression % cast-expression |
* ¿Í / ÀÇ ÇÇ¿¬»êÀÚ´Â »ê¼úÇüÀ̾î¾ß ÇÕ´Ï´Ù; % ÀÇ ÇÇ¿¬»êÀÚ´Â Á¤¼öÇü (integral) À̾î¾ß
ÇÕ´Ï´Ù. °¢ ÇÇ¿¬»êÀÚ¿¡´Â ÀϹÝÀû »ê¼úº¯È¯ (usual arithmetic conversion) ÀÌ ¼öÇàµÇ¸ç,
±×·Î ÀÎÇØ °á°úÀÇ µ¥ÀÌÅÍÇüÀÌ ¿¹ÃøµË´Ï´Ù.
ÀÌÇ׿¬»êÀÚ * ´Â °ö¼ÀÀ» ÀǹÌÇÕ´Ï´Ù.
ÀÌÇ׿¬»êÀÚ / ´Â ù¹øÂ° ÇÇ¿¬»êÀÚ°¡ µÎ¹øÂ° ÇÇ¿¬»êÀÚ·Î ³ª´©¾îÁ³À» ¶§ÀÇ ¸òÀ»,
% ¿¬»êÀÚ´Â ³ª¸ÓÁö¸¦ ±¸ÇÕ´Ï´Ù; µÎ¹øÂ° ÇÇ¿¬»êÀÚ°¡ 0 ÀÎ °æ¿ì (0 À¸·Î ³ª´©´Â
°æ¿ì), °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined). µÎ¹øÂ° ÇÇ¿¬»êÀÚ°¡ 0 ÀÌ ¾Æ´Ï¶ó¸é
(a / b) * b + a % b °¡ a ÀÓÀÌ º¸ÀåµË´Ï´Ù. ÇÇ¿¬»êÀÚ°¡ µÑ´Ù À½¼ö°¡ ¾Æ´Ï¶ó¸é,
³ª¸ÓÁöµµ À½¼ö°¡ ¾Æ´Ï¸ç Á¦¼öº¸´Ù ÀÛ½À´Ï´Ù; ÇÇ¿¬»çÀÚÁß Çϳª¶óµµ À½¼ö°¡ ÀÖ´Ù¸é,
³ª¸ÓÁöÀÇ Àý´ë°ªÀÌ Á¦¼öÀÇ Àý´ë°ªº¸´Ù ÀÛ´Ù´Â »ç½Ç¸¸ÀÌ º¸ÀåµË´Ï´Ù.
¢¹ A7.7 µ¡¼À¿¬»êÀÚ (Additive Operator)
µ¡¼À¿¬»êÀÚ +, - ´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¹ÀÔ´Ï´Ù. ¸¸¾à ÇÇ¿¬»êÀÚ°¡
»ê¼úÇüÀ̶ó¸é ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù. »ê¼úÇü¿Ü¿¡µµ °¢ ¿¬»êÀÚ¸¶´Ù
ºÎ°¡ÀûÀÎ µ¥ÀÌÅÍÇü °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
 |
 |
¢º ¿ªÀÚ ÁÖ
'ºÎ°¡ÀûÀÎ µ¥ÀÌÅÍÇü °¡´É¼º' À̶õ µ¡¼À¿¬»êÀÚ¿Í »¬¼À¿¬»êÀÚ¿¡ »ê¼úÇü¿Ü¿¡
Æ÷ÀÎÅÍÇüÀ» ÇÇ¿¬»êÀÚ·Î µÑ ¼ö ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. |
|
 |
 |
additive-expression:
multiplicative-expression
additive-expression + multiplicative-expression
additive-expression - multiplicative-expression
|
+ ¿¬»êÀÚÀÇ °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ÇÕÀÔ´Ï´Ù. ¹è¿ÀÇ ¾î¶°ÇÑ ´ë»óü¸¦ °¡¸£Å°´Â
Æ÷ÀÎÅÍ¿Í Á¤¼ö°ª (integral) Àº ´õÇØÁú ¼ö ÀÖ½À´Ï´Ù. Á¤¼ö°ª (integral) Àº Æ÷ÀÎÅͰ¡ °¡¸£Å°´Â ´ë»óüÀÇ
Å©±â¸¦ °öÇØ¼ ¸Þ¸ð¸®»óÀÇ ÁÖ¼Ò (address offset) ·Î º¯È¯µË´Ï´Ù. ¿¬»êÀÇ
°á°úÀÎ ÇÕÀº ¿ø·¡ÀÇ ´ë»óü·ÎºÎÅÍ Àû´çÇÑ »ó´ë¹øÁö (offset) ¸¸Å ¶³¾îÁ®ÀÖ´Â, °°Àº
¹è¿³»ÀÇ ´Ù¸¥ ´ë»óü¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍÀÔ´Ï´Ù. µû¶ó¼ Æ÷ÀÎÅÍ p °¡ ¾î¶² ¹è¿³»ÀÇ
´ë»óü¸¦ °¡¸£Å°°í ÀÖ´Ù¸é, p+1 Àº ±× ´ÙÀ½ ¿ä¼Ò¸¦ °¡¸£Å°´Â °ÍÀÔ´Ï´Ù. ¹è¿ÀÇ
ÇÑÂÊ ³¡ ¹Ù·Î ´ÙÀ½ À§Ä¡ (first location beyond the high end) ¸¦ Á¦¿ÜÇϰí,
¹è¿ÀÇ ÇѰ踦 ³Ñ¾î¼¼ °¡¸£Å³ °æ¿ìÀÇ °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined).
| |
¹è¿ÀÇ ³¡À» ³Ñ¾î¼´Â Æ÷ÀÎÅÍ¿¡ ´ëÇÑ ±ÝÁöÁ¶Ç×Àº
»õ·Î¿î °ÍÀÔ´Ï´Ù. ÀÌ´Â ¹è¿ÀÇ ¿ä¼Òµé¿¡¼¸¸ ·çÇÁ¸¦ µµ´Â ÀϹÝÀûÀÎ °ü·Ê¸¦ Á¤ÅëÀ¸·Î
¹Þ¾ÆµéÀÎ °ÍÀÔ´Ï´Ù. |
 |
 |
¢º ¿ªÀÚ ÁÖ
¹è¿ÀÇ ÇѰ踦 ³Ñ¾î¼´Â Æ÷ÀÎÅÍ¿¡ ´ëÇØ¼´Â ¾î¶°ÇÑ »çÇ×µµ
Á¤ÀÇÇØ ÁÖÁö ¾ÊÁö¸¸, ¹è¿ÀÇ ¹Ù·Î ´ÙÀ½ À§Ä¡¿¡ ´ëÇØ¼´Â Æ÷ÀÎÅͰ¡
¹è¿À» ¹þ¾î³´Ù°í ÇØµµ ÀÎÁ¤À» ÇØÁÝ´Ï´Ù.
´õ ÀÚ¼¼ÇÑ »çÇ×Àº »¬¼À¿¬»êÀÚ¿Í °ü°è¿¬»êÀÚ¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
Æ÷ÀÎÅÍ·Î ¹è¿À» ´Ù·ê ¶§, Àü¿¡´Â ±ÝÁöÁ¶Ç×ÀÌ ¾ø¾îµµ
¹è¿À» ¹þ¾î³ª´Â Æ÷ÀÎÅÍ ¿¬»êÀº Çʿ䰡 ¾ø¾î ÇàÇØÁöÁö ¾Ê¾Ò½À´Ï´Ù. ÇÏÁö¸¸ ÀÌÁ¦´Â
ANSI ¿¡¼ ±×·¯ÇÑ °ü·Ê¸¦ ¹Þ¾Æµé¿© À̸¦ ¸íÈ®È÷ ±ÝÁöÇÏ°Ô µÇ¾ú½À´Ï´Ù. |
|
 |
 |
- ¿¬»êÀÚÀÇ °á°ú´Â ÇÇ¿¬»êÀÚÀÇ Â÷ÀÔ´Ï´Ù. Æ÷ÀÎÅÍ¿¡¼ ¾î¶² Á¤¼ö°ª (integral) µµ »¬ ¼ö ÀÖÀ¸¸ç
µ¡¼À¿¬»êÀÚó·³ µ¿ÀÏÇÑ º¯È¯ÀÌ Àû¿ëµË´Ï´Ù.
°°Àº µ¥ÀÌÅÍÇü Æ÷ÀÎÅÍ´Â ¼·Î »¬ ¼ö ÀÖÀ¸¸ç, °á°ú´Â µÎ ´ë»óü »çÀÌÀÇ °Å¸®
(º¯À§, displacement) ¸¦ ³ªÅ¸³»´Â ºÎÈ£ÀÖ´Â Á¤¼ö°ª (integral) ÀÔ´Ï´Ù; ÀÎÁ¢ÇØ ÀÖ´Â ´ë»óü¸¦
°¡¸£Å°´Â Æ÷ÀÎÅÍÀÇ Â÷´Â 1 ÀÔ´Ï´Ù. °á°úÀÇ ±¸Ã¼ÀûÀÎ µ¥ÀÌÅÍÇüÀº µû·Î Á¤ÀǵǾî ÀÖÁö
¾ÊÁö¸¸ (implementation-dependent), Ç¥ÁØ Çì´õÆÄÀÏ <stddef.h> ¿¡ ptrdiff_t ·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù.
°°Àº ¹è¿³»ÀÇ ´ë»óü¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍÀÇ Â÷°¡ ¾Æ´Ï¶ó¸é ±× °á°ú°ªÀº Á¤ÀǵǾî
ÀÖÁö ¾Ê½À´Ï´Ù (undefined); ÇÏÁö¸¸ ¹è¿ÀÇ ¸¶Áö¸· ¿ä¼Ò¸¦ p ¶ó´Â Æ÷ÀÎÅͰ¡ °¡¸£Å°°í ÀÖ´Ù¸é,
(p + 1) - 1 ÀÇ °á°ú´Â 1 ÀÓÀÌ º¸ÀåµË´Ï´Ù.
¢¹ A7.8 ½¬ÇÁÆ® ¿¬»êÀÚ (Shift Operator)
½¬ÇÁÆ® ¿¬»êÀÚ << ¿Í >> ´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¹ÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚ´Â
Á¤¼öÇü (integral) À̾î¾ß Çϰí Á¤¼öÁø±ÞÀÌ ¼öÇàµË´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº Áø±ÞµÈ ¿ÞÂÊ
ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. ¸¸¾à ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ À½¼öÀ̰ųª ¿ÞÂÊ ÇÇ¿¬»êÀÚ
ºñÆ®¼ö ÀÌ»óÀÇ Å©±âÀÏ °æ¿ì¿¡ °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined).
shift-expression:
additive-expression
shift-expression << additive-expression
shift-expression >> additive-expression |
E1 << E2 ÀÇ °ªÀº E2 ºñÆ®¼ö¸¸Å ÁÂÃø ½¬ÇÁÆ®µÈ (ºñÆ®ÆÐÅÏÀ¸·Î ÇØ¼®µÈ) E1 ÀÔ´Ï´Ù;
¿À¹öÇ÷ο츦 ¹«½ÃÇÑ´Ù¸é, ÀÌ °ªÀº 2E2 ¸¦ °öÇÑ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. E1 >> E2 ÀÇ
°ªÀº E2 ºñÆ®¼ö¸¸Å ¿ìÃø ½¬ÇÁÆ®µÈ E1 ÀÔ´Ï´Ù. E1 ÀÌ ºÎÈ£¾ø´Â ÇüÀ̰ųª ¾ç¼ö°ªÀ»
°®°í ÀÖ´Ù¸é °á°ú´Â 2E2 ·Î E1 À» ³ª´« °Í°ú µ¿ÀÏÇÕ´Ï´Ù; E1 ÀÌ À½¼öÀÎ °æ¿ì¿¡´Â
ÄÄÆÄÀÏ·¯¿¡ µû¶ó °á°ú°¡ ´Þ¶óÁý´Ï´Ù (implementation-defined).
¢¹ A7.9 °ü°è¿¬»êÀÚ (Relational Operator)
°ü°è¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¹ÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ »ç½ÇÀº º°·Î À¯¿ëÇÏÁö
¾Ê½À´Ï´Ù; a < b < c ´Â (a < b) < c ·Î ¹À̰í, (a < b) ´Â 0 ¾Æ´Ï¸é 1 ·Î
Æò°¡µÇ¾î ¹ö¸³´Ï´Ù.
relational-expression:
shift-expression
relational-expression < shift-expression
relational-expression > shift-expression
relational-expression <= shift-expression
relational-expression >= shift-expression |
¿¬»êÀÚ < (¹Ì¸¸), > (Ãʰú), <= (ÀÌÇÏ), >= (ÀÌ»ó) ´Â ¼¼úµÈ °ü°è½ÄÀÌ °ÅÁþÀ̸é 0 À»,
ÂüÀ̸é 1 À» »ý¼ºÇÕ´Ï´Ù. °á°úÀÇ µ¥ÀÌÅÍÇüÀº int ÇüÀÔ´Ï´Ù. ÀϹÝÀû »ê¼úº¯È¯ÀÌ
»ê¼úÇü ÇÇ¿¬»êÀÚ¿¡ ¼öÇàµË´Ï´Ù. (ÇüÇÑÁ¤¾î¸¦ ¹«½ÃÇϰí) µ¿ÀÏÇÑ µ¥ÀÌÅÍÇüÀ»
°¡¸£Å°´Â Æ÷ÀÎÅÍ´Â ºñ±³µÉ ¼ö ÀÖ½À´Ï´Ù; °á°ú´Â Æ÷ÀÎÅͰ¡ °¡¸£Å°´Â ´ë»óüÀÇ ¸Þ¸ð¸®»óÀÇ
»ó´ëÀûÀÎ À§Ä¡¿¡ ´Þ·ÁÀÖ½À´Ï´Ù. Æ÷ÀÎÅÍ ºñ±³´Â ¿ÀÁ÷ µ¿ÀÏÇÑ ´ë»óüÀÇ ÀϺκп¡
´ëÇØ¼¸¸ Á¤ÀǵǾî ÀÖ½À´Ï´Ù: ¸¸¾à µÎ Æ÷ÀÎÅͰ¡ µ¿ÀÏÇÑ ´ë»óü¸¦ °¡¸£Å²´Ù¸é
°á°ú´Â °°´Ù°í (equal) ³ª¿É´Ï´Ù; ¸¸¾à Æ÷ÀÎÅͰ¡ µ¿ÀÏÇÑ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀ»
°¡¸£Å²´Ù¸é, ±¸Á¶Ã¼¿¡¼ ÈÄ¿¡ ¼±¾ðµÇ´Â ´ë»óüÀÇ Æ÷ÀÎÅͰ¡ ´õ Å©´Ù°í
(higher) ºñ±³µË´Ï´Ù; ¸¸¾à Æ÷ÀÎÅͰ¡ µ¿ÀÏÇÑ ¹è¿À» °¡¸£Å°°í ÀÖ´Ù¸é Æ÷ÀÎÅÍ
ºñ±³ÀÇ °á°ú´Â °ð ÷ÀÚ ºñ±³¿Í °°½À´Ï´Ù. ¸¸¾à Æ÷ÀÎÅÍ p °¡ ¹è¿ÀÇ ¸¶Áö¸·
¿ä¼Ò¸¦ °¡¸£Å°°í ÀÖ´Ù¸é p+1 ÀÌ ºñ·Ï ¹è¿ÀÇ ¹ÛÀ̶ó ÇØµµ p º¸´Ù Å©°Ô Æò°¡µË´Ï´Ù.
±×¿ÜÀÇ °æ¿ì´Â Æ÷ÀÎÅÍ ºñ±³¿¡ ´ëÇØ¼ Á¤ÀǵǾî ÀÖÁö ¾Ê½À´Ï´Ù (undefined).
| |
ÀÌ·¯ÇÑ ±ÔÄ¢µéÀº ±¸Á¶Ã¼³ª °ø¿ëüÀÇ ¼·Î ´Ù¸¥ ¸â¹öµé¿¡
´ëÇÑ Æ÷ÀÎÅÍ ºñ±³¸¦ Çã°¡ÇÔÀ¸·Î½á, ÃÊÆÇ¿¡¼ÀÇ Á¦¾àÀ» ´Ù¼Ò ¿ÏÈÇÏ¿´½À´Ï´Ù. ANSI ´Â
¶ÇÇÑ ¹è¿ÀÇ ³¡À» ¹þ¾î³ª´Â ºñ±³¸¦ °øÀÎÇÏ¿´½À´Ï´Ù. |
¢¹ A7.10 »óµî¿¬»êÀÚ (Equality Operator)
equality-expression:
relational-expression
equality-expression == relational-expression
equality-expression != relational-expression |
== (°°À½) °ú != (°°Áö ¾ÊÀ½) ¿¬»êÀÚ´Â ³·Àº ¿¬»ê¼øÀ§¸¦ Á¦¿ÜÇÏ¸é °ü°è¿¬»êÀÚ¿Í À¯»çÇÕ´Ï´Ù.
(µû¶ó¼ a < b ¿Í c < d °¡ °°Àº Áø¸®°ªÀ» °®À» ¶§¿¡¸¸ a < b == c < d ´Â 1 ÀÌ µË´Ï´Ù)
»óµî¿¬»êÀÚ´Â °ü°è¿¬»êÀÚ¿Í µ¿ÀÏÇÑ ±ÔÄ¢À» µû¸£Áö¸¸, Ãß°¡ÀûÀÎ °¡´É¼ºµµ Çã°¡µÇ¾î
ÀÖ½À´Ï´Ù: Æ÷ÀÎÅÍ´Â void Çü Æ÷ÀÎÅÍ È¤Àº 0 °ªÀ» °®´Â »ó¼ö¼ö½Ä°ú ºñ±³µÉ ¼ö ÀÖ½À´Ï´Ù.
(A6.6 Âü°í)
¢¹ A7.11 ºñÆ® AND ¿¬»êÀÚ (Bitwise AND Operator)
AND-expression:
equality-expression
AND-expression & equality-expression |
ÇÇ¿¬»êÀÚ¿¡ ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù; °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ºñÆ® AND °ªÀÔ´Ï´Ù.
Á¤¼ö ÇÇ¿¬»êÀÚ (integral) ¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢¹ A7.12 ºñÆ® XOR ¿¬»êÀÚ (Bitwise Exclusive OR Operator)
exclusive-OR-expression:
AND-expression
exclusive-OR-expression ^ AND-expression |
ÇÇ¿¬»êÀÚ¿¡ ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù; °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ºñÆ® XOR °ªÀÔ´Ï´Ù.
Á¤¼ö ÇÇ¿¬»êÀÚ (integral) ¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢¹ A7.13 ºñÆ® OR ¿¬»êÀÚ (Bitwise Inclusive OR Operator)
inclusive-OR-expression:
exclusive-OR-expression
inclusive-OR-expression | exclusive-OR-expression |
ÇÇ¿¬»êÀÚ¿¡ ÀϹÝÀû »ê¼úº¯È¯ÀÌ ¼öÇàµË´Ï´Ù; °á°ú´Â ÇÇ¿¬»êÀÚÀÇ ºñÆ® OR °ªÀÔ´Ï´Ù.
Á¤¼ö ÇÇ¿¬»êÀÚ (integral) ¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¢¹ A7.14 ³í¸® AND ¿¬»êÀÚ (Logical AND Operator)
logical-AND-expression:
inclusive-OR-expression
logical-AND-expression && inclusive-OR-expression |
&& ¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¹ÀÔ´Ï´Ù. µÎ ÇÇ¿¬»êÀÚ°¡ ¸ðµÎ 0 °ú ´Ù¸£¸é 1 À»,
±×·¸Áö ¾ÊÀ¸¸é 0 À» ¹ÝȯÇÕ´Ï´Ù. & ¿Í´Â ´Þ¸®, && ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡ ¸ÕÀú
Æò°¡µÈ´Ù´Â °ÍÀÌ º¸ÀåµË´Ï´Ù: ¸ðµç ºÎÀÛ¿ë (side effect) À» Æ÷ÇÔÇØ ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡
¸ÕÀú Æò°¡µË´Ï´Ù; ±× °ªÀÌ 0 À̶ó¸é, ¼ö½ÄÀÇ °ªÀº 0 ÀÌ µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é
¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ Æò°¡µÇ°í, ±× °ªÀÌ 0 À̶ó¸é ¼ö½ÄÀÇ °ªÀº 0 ÀÌ, 0 ÀÌ ¾Æ´Ï¶ó¸é
¼ö½ÄÀÇ °ªÀº 1 ÀÌ µË´Ï´Ù.
ÇÇ¿¬»êÀÚ´Â °°Àº µ¥ÀÌÅÍÇüÀ» °®À» ÇÊ¿ä´Â ¾øÁö¸¸, »ê¼úÇüÀ̳ª Æ÷ÀÎÅÍ¿©¾ß
ÇÕ´Ï´Ù. ¿¬»ê °á°ú´Â int ÇüÀÔ´Ï´Ù.
¢¹ A7.15 ³í¸® OR ¿¬»êÀÚ (Logical OR Operator)
logical-OR-expression:
logical-AND-expression
logical-OR-expression || logical-AND-expression |
|| ¿¬»êÀÚ´Â ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ¹ÀÔ´Ï´Ù. ÇÇ¿¬»êÀÚÁß Çϳª°¡ 0 °ú ´Ù¸£¸é 1 À»,
±×·¸Áö ¾ÊÀ¸¸é 0 À» ¹ÝȯÇÕ´Ï´Ù. | ¿Í´Â ´Þ¸®, || ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡ ¸ÕÀú
Æò°¡µÈ´Ù´Â °ÍÀÌ º¸ÀåµË´Ï´Ù: ¸ðµç ºÎÀÛ¿ë (side effect) À» Æ÷ÇÔÇØ ¿ÞÂÊ ÇÇ¿¬»êÀÚ°¡
¸ÕÀú Æò°¡µË´Ï´Ù; ±× °ªÀÌ 0 °ú ´Ù¸£¸é, ¼ö½ÄÀÇ °ªÀº 1 ÀÌ µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é
¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ Æò°¡µÇ°í, ±× °ªÀÌ 0 °ú ´Ù¸£¸é ¼ö½ÄÀÇ °ªÀº 1 ÀÌ, 0 À̸é
¼ö½ÄÀÇ °ªÀº 0 ÀÌ µË´Ï´Ù.
ÇÇ¿¬»êÀÚ´Â °°Àº µ¥ÀÌÅÍÇüÀ» °®À» ÇÊ¿ä´Â ¾øÁö¸¸, »ê¼úÇüÀ̳ª Æ÷ÀÎÅÍ¿©¾ß
ÇÕ´Ï´Ù. ¿¬»ê °á°ú´Â int ÇüÀÔ´Ï´Ù.
¢¹ A7.16 Á¶°Ç¿¬»êÀÚ (Conditional Operator)
conditional-expression:
logical-OR-expression
logical-OR-expression ? expression : conditional-expression |
¸ðµç ºÎÀÛ¿ë (side effect) À» Æ÷ÇÔÇØ ù¹øÂ° ÇÇ¿¬»êÀÚ°¡ Æò°¡µË´Ï´Ù;
±× °ªÀÌ 0 °ú ´Ù¸£¸é °á°ú´Â µÎ¹øÂ° ¼ö½ÄÀÇ °ªÀÌ µË´Ï´Ù. µÎ¹øÂ°¿Í ¼¼¹øÂ°
ÇÇ¿¬»êÀÚÁß Çϳª¸¸ÀÌ Æò°¡µË´Ï´Ù. ¸¸¾à µÎ¹øÂ°¿Í ¼¼¹øÂ° ÇÇ¿¬»êÀÚ°¡
»ê¼úÇüÀ̸é, µÎ ÇÇ¿¬»êÀÚ¸¦ °øÅëµÈ µ¥ÀÌÅÍÇüÀ¸·Î ¸¸µé±â À§ÇØ ÀϹÝÀû »ê¼úº¯È¯ÀÌ
Àû¿ëµË´Ï´Ù. ±×¸®°í ±×°ÍÀÌ °ð °á°úÀÇ µ¥ÀÌÅÍÇüÀÌ µË´Ï´Ù. ¸¸¾à
µÎ ÇÇ¿¬»êÀÚ°¡ void ÇüÀ̰ųª, °°Àº ±¸Á¶Ã¼³ª °ø¿ëüÀ̰ųª, °°Àº ÇüÀÇ Æ÷ÀÎÅͶó¸é
°á°ú´Â µÎ ÇÇ¿¬»êÀÚÀÇ °øÅëµÈ µ¥ÀÌÅÍÇüÀÌ µË´Ï´Ù. ¸¸¾à ÇÑ ÇÇ¿¬»êÀÚ´Â
Æ÷ÀÎÅÍ, ´Ù¸¥ ÇÇ¿¬»êÀÚ´Â »ó¼ö 0 À̶ó¸é, 0 Àº Æ÷ÀÎÅÍ·Î º¯È¯µÇ°í °á°úÇü ¿ª½Ã
Æ÷ÀÎÅÍÀÔ´Ï´Ù. Çϳª´Â void Çü Æ÷ÀÎÅͰí, ´Ù¸¥ Çϳª´Â ÀÏ¹Ý Æ÷ÀÎÅͶó¸é
ÀÏ¹Ý Æ÷ÀÎÅÍ´Â void Çü Æ÷ÀÎÅÍ·Î º¯È¯µÇ°í °á°úÇü ¿ª½Ã void Çü Æ÷ÀÎÅÍÀÔ´Ï´Ù.
Æ÷ÀÎÅÍÀÇ µ¥ÀÌÅÍÇü ºñ±³¿¡¼, Æ÷ÀÎÅͰ¡ °¡¸£Å°´Â µ¥ÀÌÅÍÇüÀÇ ¾î¶°ÇÑ ÇüÇÑÁ¤¾î
(type qualifier, A8.2) µµ ¹«½ÃµÇ¾î ¹ö¸³´Ï´Ù. ÇÏÁö¸¸ °á°úÀÇ µ¥ÀÌÅÍÇüÀº
Á¶°Ç¿¬»êÀÚÀÇ µÎ ÇÇ¿¬»êÀڷκÎÅÍ ÇÑÁ¤¾î¸¦ »ó¼Ó¹Þ½À´Ï´Ù.
 |
 |
¢º ¿ªÀÚ ÁÖ
µÎ Æ÷ÀÎÅÍÀÇ µ¥ÀÌÅÍÇüÀ» ºñ±³ÇÒ ¶§ ÇüÇÑÁ¤¾î´Â µ¥ÀÌÅÍÇü ºñ±³¿¡
¾Æ¹«·± ¿µÇâÀ» ÁÖÁö ¸øÇÕ´Ï´Ù. ´Ù¸¸ µ¥ÀÌÅÍÇü ºñ±³¿¡¼´Â ¿µÇâÀÌ ¾øÀ¸³ª,
°á°úÀÇ µ¥ÀÌÅÍÇüÀÌ °áÁ¤µÉ ¶§´Â µÎ ÇÇ¿¬»êÀÚÀÇ ÇÑÁ¤¾î¸¦ ¹°·Á¹Þ°Ô µÈ´Ù´Â
ÀǹÌÀÔ´Ï´Ù. |
|
 |
 |
¢¹ A7.17 ´ëÀÔ¼ö½Ä (Assignment Expression)
C¿¡´Â ¿©·¯ Á¾·ùÀÇ ´ëÀÔ¿¬»êÀÚ (assignment operator) °¡ ÀÖ½À´Ï´Ù; ¸ðµç
´ëÀÔ¿¬»êÀÚ´Â ¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊÀ¸·Î ¹ÀÔ´Ï´Ù.
assignment-expression:
conditional-expression
unary-expression assignment-operator assignment-expression
assignment operator: one of
= *= /= %= += -=
<<= >>= &= ^= |= |
¸ðµç ´ëÀÔ¿¬»êÀÚ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚ·Î Áº¯°ªÀ» ÇÊ¿ä·Î Çϸç, ±× Áº¯°ªÀº ¹Ýµå½Ã
¼öÁ¤ÀÌ °¡´ÉÇØ¾ß ÇÕ´Ï´Ù: ¹è¿À̾ ¾ÈµÇ¸ç, ºÒ¿ÏÀüÇÑ Çü (incomplete
type) À̳ª ÇÔ¼ö¿©µµ ¾ÈµË´Ï´Ù. ¶ÇÇÑ Áº¯°ªÀÇ µ¥ÀÌÅÍÇüÀÌ const ·Î
ÇÑÁ¤µÇ¾î À־ ¾ÈµË´Ï´Ù; Áº¯°ªÀÌ ±¸Á¶Ã¼³ª °ø¿ëüÀÎ °æ¿ì, ±¸Á¶Ã¼³ª °ø¿ëüÁß
¾î¶°ÇÑ ¸â¹öµµ, Àç±ÍÀûÀ¸·Î µÇ¾î ÀÖ´Â °æ¿ì, ¾î¶°ÇÑ ºÎºÐ¸â¹ö (submember) µµ const ·Î
ÇÑÁ¤µÇ¾î¼´Â ¾ÈµË´Ï´Ù. ´ëÀÔ¼ö½ÄÀÇ µ¥ÀÌÅÍÇüÀº ¿ÞÂÊ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀ̸ç,
°ªÀº ´ëÀÔÀÌ ÀÏ¾î³ ÈÄ¿¡ ¿ÞÂÊ ÇÇ¿¬»êÀÚ¿¡ ´ëÀÔµÈ °ªÀÔ´Ï´Ù.
= ¿Í °°Àº °£´ÜÇÑ ´ëÀÔ¿¡¼, ¼ö½ÄÀÇ °ªÀº Áº¯°ª¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ´ë»óüÀÇ
°ªÀ¸·Î ġȯµË´Ï´Ù. ´ÙÀ½ »ç½ÇÁß Çϳª¿¡ ¹Ýµå½Ã ÇØ´çµÇ¾î¾ß ÇÕ´Ï´Ù: µÎ ÇÇ¿¬»êÀÚ°¡
¸ðµÎ »ê¼úÇüÀ̶ó¸é, ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ ´ëÀÔ¿¡ ÀÇÇØ ¿ÞÂÊ ÇÇ¿¬»êÀÚÀÇ µ¥ÀÌÅÍÇüÀ¸·Î
º¯È¯µË´Ï´Ù; ȤÀº µÎ ÇÇ¿¬»êÀÚ°¡ ¸ðµÎ °°Àº ÇüÀÇ ±¸Á¶Ã¼³ª °ø¿ëüÀÔ´Ï´Ù;
ȤÀº ÇÑ ÇÇ¿¬»êÀÚ´Â Æ÷ÀÎÅÍÀÌ°í ´Ù¸¥ ÇÇ¿¬»êÀÚ´Â void Çü Æ÷ÀÎÅÍÀÔ´Ï´Ù;
ȤÀº ¿ÞÂÊ ÇÇ¿¬»êÀÚ´Â Æ÷ÀÎÅÍÀÌ°í ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ´Â 0 °ªÀ» °®´Â »ó¼ö¼ö½ÄÀÔ´Ï´Ù;
ȤÀº ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ¿¡ ÀÖ´Â const ³ª volatile ¸¦ Á¦¿ÜÇÏ¸é °°Àº µ¥ÀÌÅÍÇüÀÇ
´ë»óü³ª ÇÔ¼ö¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍ¿©¾ß ÇÕ´Ï´Ù.
E1 op= E2 ÇüÅÂÀÇ ¼ö½ÄÀº E1 ÀÌ Çѹø¸¸ Æò°¡µÈ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé
E1 = E1 op E2 ¿Í µ¿ÀÏÇÕ´Ï´Ù.
¢¹ A7.18 ½°Ç¥¿¬»êÀÚ (Comma Operator)
expression:
assignment-expression
expression, assignment-expression |
½°Ç¥¿¡ ÀÇÇØ ºÐ¸®µÈ ÇѽÖÀÇ ¼ö½ÄÀº ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î Æò°¡µÇ°í,
¼ö½ÄÀÇ µ¥ÀÌÅÍÇü°ú °ªÀº ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ¿Í °°½À´Ï´Ù. ¿ÞÂÊ ÇÇ¿¬»êÀÚ¸¦
Æò°¡ÇÏ¸é¼ ¹ß»ýÇÏ´Â ¸ðµç ºÎÀÛ¿ë (side effect) Àº ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚÀÇ Æò°¡¸¦
½ÃÀÛÇϱâ Àü¿¡ ¸ðµÎ ¿Ï·áµË´Ï´Ù. ÇÔ¼ö ÀÎÀÚ ¸®½ºÆ®³ª ÃʱâÄ¡
(initializer) ¿Í °°ÀÌ ½°Ç¥°¡ Ưº°ÇÑ Àǹ̷ΠÁÖ¾îÁö´Â ¹®¸Æ¿¡¼, ÇÊ¿äÇÑ ¹®¹ýÀû
´ÜÀ§ (syntactic unit) ´Â ´ëÀÔ¼ö½ÄÀ̰í, µû¶ó¼ ½°Ç¥¿¬»êÀÚ´Â °ýÈ£¾È¿¡¼¸¸
³ª¿É´Ï´Ù; ¿¹¸¦ µé¾î,
f(a, (t=3, t+2), c)
´Â 3°³ÀÇ ÀÎÀÚ¸¦ °¡Áö°í ÀÖÀ¸¸ç, µÎ¹øÂ° ÀÎÀÚÀÇ °ªÀº 5°¡ µË´Ï´Ù.
¢¹ A7.19 »ó¼ö¼ö½Ä (Constant Expression)
¹®¹ýÀûÀ¸·Î, »ó¼ö¼ö½ÄÀº ¿¬»êÀÚÀÇ ºÎºÐÁýÇÕ¿¡ Á¦ÇÑµÈ ¼ö½ÄÀÔ´Ï´Ù.
constant-expression:
conditional-expression |
»ó¼ö¼ö½ÄÀº case ¹®ÀÇ µÚ, ¹è¿ÀÇ Å©±â (bound) ¼³Á¤, ºñÆ®ÇʵåÀÇ ±æÀÌ, ¿°Å»ó¼öÀÇ
°ª, ÃʱâÄ¡, ¸íÈ®ÇÑ Àü󸮱⠼ö½Ä°ú °°Àº ¿©·¯ ¹®¸Æ¿¡¼
ÇÊ¿äÇÕ´Ï´Ù.
»ó¼ö¼ö½ÄÀº sizeof ÀÇ ÇÇ¿¬»êÀÚ·Î ¾²ÀÌ´Â °æ¿ì¸¦ Á¦¿ÜÇϰí´Â ´ëÀÔ¹®, °£Á¢ÁöÁ¤
(indirection), Áõ°¨¿¬»êÀÚ, ÇÔ¼öÈ£Ãâ, ½°Ç¥¿¬»êÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. ¸¸¾à
»ó¼ö¼ö½ÄÀÌ Á¤¼ö°ª (integral) ÀÏ Çʿ䰡 ÀÖ´Ù¸é, ±×°ÍÀÇ ÇÇ¿¬»êÀÚ´Â ¹Ýµå½Ã Á¤¼ö (integer), ¿°Å, ¹®ÀÚ,
ºÎµ¿»ó¼ö·Î ±¸¼ºµÇ¾î¾ß¸¸ Çϸç, Á¤¼öÇü (integral) À¸·ÎÀÇ Ä³½ºÆ®°¡ ¸í½ÃµÇ¾î¼ ºÎµ¿»ó¼ö°¡ Á¤¼ö (integer) ·Î
º¯È¯µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. »ó¼ö¼ö½Ä¿¡´Â ÇʼöÀûÀ¸·Î ¹è¿, °£Á¢ÁöÁ¤, ÁÖ¼Ò¿¬»ê, ±×¸®°í ±¸Á¶Ã¼
¸â¹ö ¿¬»êÀº ¹èÁ¦µË´Ï´Ù. (´Ù¸¸, sizeof ÀÇ ÇÇ¿¬»êÀÚ·Î ¾²ÀÎ´Ù¸é ¸ðµÎ °¡´ÉÇÕ´Ï´Ù)
ÃʱâÄ¡ (initalizer) ·Î ¾²ÀÌ´Â »ó¼ö¼ö½Ä¿¡´Â ´õ ¸¹Àº °ÍµéÀÌ Çã¿ëµË´Ï´Ù.
ÇÇ¿¬»êÀÚ´Â ¾î¶°ÇÑ ÇüÀÇ »ó¼ö¿©µµ °¡´ÉÇϰí, ´ÜÇ× & ¿¬»êÀÚ°¡ ¿ÜºÎ (external) ȤÀº Á¤Àû (static)
´ë»óü¿¡ »ç¿ëµÇ¾îµµ ÁÁÀ¸¸ç, ÷ÀÚ°¡ ÀÖ´Â (subscripted) ¿ÜºÎ ȤÀº Á¤Àû ¹è¿ÀÌ µé¾îÀ־
±¦Âú½À´Ï´Ù. ¶ÇÇÑ ´ÜÇ× & ¿¬»êÀڴ ÷ÀÚ°¡ ¾ø´Â ¹è¿À̳ª ÇÔ¼ö°¡ ³ª¿ÈÀ¸·Î½á ¾Ï½ÃÀûÀ¸·Î
Àû¿ëµÉ ¼öµµ ÀÖ½À´Ï´Ù. ÃʱâÄ¡´Â ¹Ýµå½Ã ÀÌ¹Ì ¼±¾ðµÈ ¿ÜºÎ, Á¤Àû ´ë»óüÀÇ ÁÖ¼Ò¿¡ »ó¼ö°¡
°¡°¨µÈ °ªÀ̳ª »ó¼ö°ªÀ¸·Î Æò°¡µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù.
#if µÚ¿¡ ³ª¿À´Â Á¤¼ö »ó¼ö¼ö½Ä (integral) ¿¡´Â ´õ ¸¹Àº Á¦¾àÀÌ µû¸¨´Ï´Ù; sizeof ¼ö½Ä,
¿°Å»ó¼ö, ij½ºÆ®°¡ Çã°¡µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. A12.5 Âü°í.
 |
 |
¢º ¿ªÀÚ ÁÖ
sizeof ¼ö½ÄÀº ÄÄÆÄÀÏ Àü¿¡ ÀÌ¹Ì »ó¼ö¼ö½ÄÀ¸·Î Æò°¡µÇ¹Ç·Î,
»ó¼ö¼ö½Ä¿¡´Â »ç¿ëÇÒ ¼ö ¾ø´Â ÇÇ¿¬»êÀÚ¶ó ÇØµµ sizeof ¸¦ °ÅÄ¡¸é
ÃæºÐÈ÷ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. |
|
 |
 |
|