¸®´ª½º ȯ°æ¿¡¼­ÀÇ C ÇÁ·Î±×·¡¹Ö 4Àå º¯¼ö¿Í ¿¬»êÀÚ
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

Contents

1 º¯¼ö
1.1 C¿¡¼­ »ç¿ëµÇ´Â ¹®ÀÚµé
1.2 º¯¼ö¿Í »ó¼ö
1.2.1 ¸í¸í ±ÔÄ¢
1.3 µ¥ÀÌÅÍ Çü°ú Å©±â
1.3.1 ±âº» µ¥ÀÌÅÍ Çü
1.3.2 signed ¿Í unsignedÇü
1.4 »ó¼ö
1.4.1 º¯¼öÀÇ ¼±¾ð°ú Á¤ÀÇ
2 ¿¬»êÀÚ
2.1 ´ëÀÔ ¿¬»êÀÚ
2.2 ÀÏ¹Ý ¼öÄ¡¿¬»êÀÚ
2.3 ³í¸® ¿¬»êÀÚ
2.4 Áõ°¨ ¿¬»êÀÚ
2.5 ºñÆ® ¿¬»êÀÚ
2.6 ¿¬»êÀÚÀÇ »ç¿ë
2.7 ¿¬»êÀÚ ¿ì¼±¼øÀ§
3 define ¹®ÀÇ »ç¿ë
3.1 define ¹®¹ý
3.2 define ¹®¿¡ ´ëÇØ¼­ »ý°¢Çغ¸ÀÚ
3.3 define ¹®°ú ÇÔ¼öÀÇ Â÷ÀÌ
3.4 define ¹®°ú const »ó¼öÀÇ Â÷ÀÌ
3.5 ¸ÞÅ©·Î·Î½áÀÇ define

1 º¯¼ö

1.1 C¿¡¼­ »ç¿ëµÇ´Â ¹®ÀÚµé

Àΰ£ÀÌ ¾²´Â ¾ð¾îÀÇ ¼ýÀÚ¸¸ ÇØµµ ¾Æ¸¶ 100¿©°³°¡ ³ÑÀ»°Å¶ó°í »ý°¢µÈ´Ù. C¾ð¾î´Â ±â°è¾î¸¦ ´ë½ÅÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Àΰ£ÀÇ ¾ð¾î·Î ¾²¿©Áø ÇÁ·Î±×·¡¹Ö ¾ð¾îÀε¥, ±×·¸´Ù¸é Àΰ£ÀÇ ¾ð¾îÁß ¾î¶² ¾ð¾î¸¦ »ç¿ëÇϰí ÀÖÀ»±î. ´äÀº ¿µ¾î´Ù. ÄÄÇ»ÅͶó´Â ±â°è°¡ ¿µ¾î¹®¸í±Ç¿¡¼­ ¹ß¸íÀÌ µÇ´Ùº¸´Ï, ÄÄÇ»ÅÍ¿¡¼­ ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇØ »ç¿ëÇÑ C¾ð¾îµµ ÀÚ¿¬½º·´°Ô ¿µ¾î ¾ËÆÄºªÀ» ±âº» ¹®ÀÚ·Î »ç¿ëÇϵµ·Ï ¸¸µé¾î Á³´Ù. - ÇÑ±Û·ÎµÈ ÄÄÇ»ÅÍ ¾ð¾î¸¦ »ç¿ëÇØº¸ÀÚ¶ó°í ÇØ¼­ ¾¾¾ÑÀ̶ó´Â Çѱ۷Π»ç¿ë°¡´ÉÇÑ ¾ð¾î°¡ ÀÖ¾ú±â´Â Çß´Ù. ´ç½Ã¿¡´Â ²Ï ÁÖ¸ñÀ» ¹Þ±âµµ Çß¾ú´Âµ¥, ¼Ò¸®¼Ò¹® ¾øÀÌ ÀØÇôÁö°í ¸»¾Ò´Ù. ±×¶§°¡ ³»°¡ ´ëÇÐ 1Çг⠶§Àΰ¡? µÇ¾ú´ø µí ½Í´Ù. -

C¿¡¼­ »ç¿ëÇÏ´Â ¹®ÀÚµéÀº ´ÙÀ½°ú °°´Ù.
a b c d e f g h i j k l m n o p q r s t u v w x y z 
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
0 1 2 3 4 5 6 7 8 9 
! " # % & ' ( ) * + , - . / 
: ; < = > ? [ \ ] ^ _ { | } ~ 
space, tab, newline, form feed 
 
À§ÀÇ ¹®ÀÚ¼ÂÀº C¾ð¾î »Ó¸¸ ¾Æ´Ï¶ó. ´Ù¸¥ °ÅÀÇ ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­µµ ±âº»À¸·Î »ç¿ëÇϰí ÀÖ´Ù.

2¹ÙÀÌÆ® ÀÌ»óÀÇ ¹®ÀÚ´Â ÁÖ¼®¿Ü¿¡´Â »ç¿ëÇÒ ¼ö ¾ø´Â°Ô ÀϹÝÀûÀÌ´Ù.

1.2 º¯¼ö¿Í »ó¼ö

ÄÄÇ»ÅÍ´Â ¿¬»êÀ» ºü¸£°Ô Çϱâ À§ÇÑ ±â°è·Î, ¿¬¼ÓµÈ ¼ö ¸¹Àº ¿¬»êµéÀ» ó¸®ÇØ ³ª°£´Ù. ¿¬»ê¿¡´Â ¿¬»êÀÚ¿Í ÇÇ¿¬»êÀÚ°¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀº ´©±¸³ª ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù.
    +-------------- ÇÇ¿¬»êÀÚ 
    | 
 +-------+ 
 |       | 
 1   +   2 
     | 
     +-------------- ¿¬»êÀÚ 
 
ÀÌÁ¦ ¿¬¼ÓµÈ ¿¬»ê, ¿¹¸¦µé¾î¼­ 1ºÎÅÍ 100±îÁöÀÇ ¼ýÀÚ¸¦ ´õÇÏ´Â ¿¬»êÀ» ÇØ¾ßÇÑ´Ù°í °¡Á¤Çغ¸ÀÚ. ´Ü¼øÇÏ°Ô 1ºÎÅÍ 100±îÁö ´õÇÒ°æ¿ì 100¹øÀÇ µ¡¼ÀÀÌ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥, À̸¦ À§Çؼ­´Â °¢°¢ÀÇ ¿¬»ê°á°ú¸¦ ¾îµò°¡¿¡ ÀúÀåÀ» ÇØ¾ß ÇÑ´Ù. ÀÌ·±°æ¿ì ¾Ï»ê´É·ÂÀÌ ÁÁÀº »ç¶÷Àº ¸Ó¸®¿¡ ¿¬»ê°á°ú¸¦ ±â¾ïÇÒ °ÍÀ̰í, ±×·¸Áö ¸øÇÑ »ç¶÷Àº Á¾À̵îÀ» ÀÌ¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù.

ÄÄÇ»ÅÍ´Â ¸Þ¸ð¸®°ø°£À» ÀÌ¿ëÇÑ´Ù. À§ÀÇ 1ºÎÅÍ 100±îÁö ´õÇÏ´Â ¿¬»êÀ» ÇÒ°æ¿ì ¸Å¹ø ¸Þ¸ð¸®ÀÇ ÀúÀåÀå¼Ò¿¡ ¿¬»ê°á°ú¸¦ ³Ö¾ú´Ù »°´ÙÇÏ´Â ÀÏÀ» ÇÑ´Ù. ÀÌ·± ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸® °ø°£¿¡´Â ÀÏ·ÃÀÇ ¼ýÀÚ·ÎµÈ ÁÖ¼Ò°¡ ¸Þ°ÜÁ® ÀÖ´Ù. ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸®°¡ 2 Gigabyte¶ó¸é, 0ºÎÅÍ 2147483647±îÁöÀÇ ¹øÈ£°¡ ¸Å°ÜÁ® ÀÖ°í, ÀÌÁß »ç¿ëÇÏÁö ¾Ê´Â °÷ÀÇ ÁÖ¼ÒÀÇ ¹øÈ£¸¦ ¾Ë¾Æ³»¾î¼­ ±×°÷¿¡ ¿¬»ê°á°ú¸¦ ÀúÀåÇÏ´Â ½ÄÀÌ´Ù.

¿©·¯ºÐÀÌ ¿¬»ê°á°ú¸¦ ÀúÀåÇϱâ À§Çؼ­ 2184912 ¹øÂ° ÁÖ¼Ò¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù¶ó°í °¡Á¤Çغ¸ÀÚ. ±â¾ïÇØ¼­ »ç¿ëÇϱⰡ ±×·¸°Ô ¸¸¸¸Ä¡ ¾ÊÀ» °ÍÀÌ´Ù. ±×·¡¼­ »ç¿ëÇϱ⠽±°Ô, ¼ýÀÚ´ë½Å ¾ËÆÄºª¹®ÀÚ¸¦ »ç¿ëÇØ¼­ ÇØ´ç ÁÖ¼Ò¸¦ ´ë½Å °¡¸®Å°°Ô µÈ´Ù. À̶§ ¿¬»êÀÇ °á°ú·Î ÀúÀåµÇ´Â °ªÀ» º¯¼ö¶ó°í Çϰí, º¯¼ö°¡ ÀúÀåµÉ °ø°£À» ½±°Ô »ç¿ëÇϱâ À§Çؼ­ ¿µ¾î·Î ¸í¸íÇÑ °ÍÀ» º¯¼ö¸í À̶ó°í ÇÑ´Ù.

º¯ÇÏ´Â ¼ö°¡ ÀÖÀ¸¸é º¯Ä¡ ¾Ê´Â ¼ö°¡ ÀÖÀ» °ÍÀÌ´Ù. À̸¦ »ó¼ö¶ó°í Çϸç, ¸¶Âù°¡Áö·Î »ó¼ö¸íÀ» ÀÌ¿ëÇØ¼­ »ó¼ö°¡ ÀúÀåµÉ ¸Þ¸ð¸® °ø°£À» °¡¸®Å°°Ô µÈ´Ù.

              +----------<--------- sum = 1+2 
              | 
 +-----------+---+---------+ 
 | ¸Þ¸ð¸®    |   |         | 
 +-----------+---+---------+ 
 
À§ÀÇ ±×¸²¿¡¼­ sumÀÌ º¯¼ö¸íÀÌ µÇ°í, sum¿¡´Â ¿¬»êÀÇ °á°úÀÎ 3ÀÌ ÀúÀåµÈ´Ù.

°£´ÜÇÏ°Ô 1+10À» ´õÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸ÀÚ.
#include <stdio.h> 
 
int main() 
{ 
    int a, b; 
    int sum; 
 
    a = 1; 
    b = 10; 
    sum = a+b;  
    printf("%d\n", sum); 
} 
 
¾ÆÁ÷ C¹®¹ýÀ» °øºÎÇÏÁø ¸øÇßÁö¸¸, ´ë·« ÀÌÇØÇϴµ¥ ¾î·Á¿òÀÌ ¾øÀ» °ÍÀÌ´Ù.
  1. a = 1 : º¯¼ö a°¡ °¡¸®Å°´Â °÷¿¡ 1À» ÀúÀåÇϰí
  2. b = 10 : º¯¼ö b°¡ °¡¸®Å°´Â °÷¿¡ 10À» ÀúÀåÇÑ´Ù.
  3. sum = a+b : º¯¼ö a°¡ °¡¸®Å°´Â °÷ÀÇ °ª 1°ú º¯¼ö b°¡ °¡¸®Å°´Â °÷¿¡ ÀúÀåµÈ °ª 10À» °¡Á®¿Í¼­ ´õÇϰí, ±× °á°ú°ªÀÎ 11À» sum¿¡ ÀúÀåÇÑ´Ù.
  4. º¯¼ö sumÀÌ °¡¸®Å°´Â °÷¿¡ ÀúÀåµÈ °ª 11À» °¡Á®¿À°í printf¶ó´Â ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ È­¸é¿¡ Ãâ·ÂÇÑ´Ù.

1.2.1 ¸í¸í ±ÔÄ¢

º¯¼ö¸í°ú »ó¼ö¸íÀº ¾ËÆÄºª ¿µ¹®ÀÚ¿Í ¼Ò¹®ÀÚ, ¼ýÀÚ,_°¡ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¶ÇÇÑ Ã¹±ÛÀÚ´Â ¹Ýµå½Ã '¿µ¹®¼Ò¹®ÀÚ','´ë¹®ÀÚ', '_'¿©¾ß ÇÑ´Ù.
º¯¼ö¸í Çã¿ë¿©ºÎ ¼³¸í
sum1 O
Sum_2 O
_sum O
1sum X ù¸Ó¸®¿¡ ¼ýÀÚ°¡ ¿Ô´Ù
sum 1 X °ø¹éÀÌ Á¸ÀçÇÏ¸é ¾ÈµÈ´Ù
sum!2 X Ư¼ö¹®ÀÚ´Â »ç¿ëµÉ ¼ö ¾ø´Ù

1.3 µ¥ÀÌÅÍ Çü°ú Å©±â

1.3.1 ±âº» µ¥ÀÌÅÍ Çü

Àΰ£°ú ´Þ¸® »ç¹°À» Ãß»óÈ­ ½ÃÄѼ­ »ý°¢ÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ ¾ø´Â ÄÄÇ»ÅÍÀÌ´Ù º¸´Ï, µ¥ÀÌÅͰ¡ ¾î¶² Á¾·ùÀÇ °ÍÀ̸ç (µ¥ÀÌÅÍÇü), ¾î´ÀÁ¤µµÀÇ Å©±â (µ¥ÀÌÅÍ Å©±â)¸¦ °¡Áö°í ÀÖ´ÂÁö¸¦ ¸íÈ®È÷ ¾Ë·ÁÁà¾ß ÇÒ Çʿ䰡 ÀÖ´Ù.

Àΰ£Àº "õ¿øÀº Å«µ·ÀÌ´Ù"¿Í "1000+2000=3000" ¿¡¼­ ¹®ÀÚ¿­ "õ"°ú ¼ýÀÚ "1000"À» ±¸ºÐÇØ ³¾ ¼ö ÀÖÁö¸¸ ÄÄÇ»ÅÍ´Â µµ´ëü ±¸ºÐÇØ ³¾ ¼ö°¡ ¾ø±â ¶§¹®ÀÌ´Ù.

¶§¹®¿¡ ¸ðµç ¾ð¾î´Â °íÀ¯ÀÇ Å©±â¸¦ °¡Áö´Â µ¥ÀÌÅÍ Çü(Type)À» Á¦°øÇϰí ÀÖ´Ù. C¾ð¾î´Â ´ÙÀ½°ú °°Àº Å©±â¸¦ °¡Áö´Â µ¥ÀÌÅÍ ÇüÀÌ ÁغñµÇ¾î ÀÖ´Ù.
µ¥ÀÌÅÍ Çü Å©±â ¼³¸í
int 4byte Á¤¼öÇü ¼ýÀÚ
char 1byte ´ÜÀÏ ¹®ÀÚ
float 4byte ½Ç¼ö
double 8byte ½Ç¼ö

¿¹¸¦ µé¾î µ¥ÀÌÅÍŸÀÔÀÌ intÀÎ a¶ó´Â º¯¼ö°¡ ÀÖ´Ù°í °¡Á¤ÇßÀ» ¶§, ¿©±â¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍÀÇ Å©±â´Â 2^32 ÀÌ´Ï 0 - 4294967295ÀÌ µÉ°Å¶ó°í »ý°¢ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ½ÇÁ¦·Î´Â À½¼ö¸¦ Ç¥ÇöÇØ¾ß Çϱ⠶§¹®¿¡ -2147483648 - 2147483647»çÀÌÀÇ °ªÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù.

char ÇüÀº ÇϳªÀÇ ¹®ÀÚ¸¦ ÀúÀåÇϱâ À§Çؼ­ »ç¿ëÇϴµ¥, 2^8¿¡¼­ À½¼ö¸¦ Ç¥ÇöÇØ¾ß ÇϹǷΠ-127 - 128ÀÇ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

float,°ú double ÇüÀº ¼Ò¼ýÁ¡À» °¡Áö´Â ½Ç¼ö¸¦ Ç¥ÇöÇϱâ À§Çؼ­ »ç¿ëÇÑ´Ù.

1.3.2 signed ¿Í unsignedÇü

Á¤¼ö¿¡´Â À½ÀÇ Á¤¼ö¿Í ¾çÀÇ Á¤¼ö°¡ ÀÖ´Ù. ±×·¸´Ù¸é ÄÄÇ»ÅÍ¿¡¼­ ¾î¶»°Ô À½¼ö¿Í ¾ç¼ö°¡ 󸮵ǴÂÁö¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ. Á¤¼ö¸¦ ÀúÀåÇϱâ À§ÇÑ µ¥ÀÌÅÍÇüÀº 4byteÀÇ Å©±â¸¦ °¡Áö´Â int ÇüÀÌ´Ù. À̰ÍÀ» ÄÄÇ»ÅÍ ¸Þ¸ð¸® »ó¿¡¼­ º¸ÀÚ¸é ´ÙÀ½°ú °°Àº ¸ð½ÀÀ» Çϰí ÀÖÀ» °ÍÀÌ´Ù.
  |<----------- 32 --------->| 
   31              ...   43210 
  +---------------    -------+ 
  |                ...       | 
  +----------------   -------+ 
 
intÇü º¯¼ö a¿¡ 1À» ÀúÀåÇß´Ù¸é, 0¹øÂ° ºñÆ®¿¡ 1ÀÌ, 2¸¦ ÀúÀåÇß´Ù¸é 1¹øÂ° ºñÆ®¿¡ 1, 2¹øÂ° ºñÆ®¿¡ 0ÀÌ ÀúÀåµÉ °ÍÀÌ´Ù. -1À» ÀúÀåÇÏ°í ½Í´Ù¸é ? ÀÌ·¯ÇÑ À½ÀÇ °ªÀÇ Ç¥½Ã¸¦ À§Çؼ­ ¸¶Áö¸· ºñÆ®¸¦ µû·Î ³²°Ü µÎ¾ú´Ù. Áï 31¹øÂ° ºñÆ®¿¡ 1ÀÌ ÀÖÀ¸¸é À½¼ö, 0ÀÌ ÀÖÀ¸¸é ¾ç¼ö¶ó°í ¾à¼ÓÀ» ÇÑ °ÍÀÌ´Ù. ´ÙÀ½Àº intÇü Á¤¼ö°¡ ¸Þ¸ð¸® »ó¿¡ ¾î¶»°Ô ÀúÀåµÇ´ÂÁö¸¦ ³ªÅ¸³»°í ÀÖ´Ù.
  • 2 -> 00000000 0000000 00000000 00000010
  • 1 -> 00000000 0000000 00000000 00000001
  • 0 -> 00000000 0000000 00000000 00000000
¿©±â¿¡¼­ -°¡ µÇ¸é ¾Æ·¡¿Í °°ÀÌ Ç¥ÇöµÈ´Ù.
  • -1 : 11111111 11111111 11111111 11111111
  • -2 : 11111111 11111111 11111111 11111110
  • -3 : 11111111 11111111 11111111 11111101
ÀÌ·¸°Ô ÇØº¸¸é ¾çÀÇ Á¤¼ö·Î °¡ÀåÅ« ¼ö¿Í À½ÀÇ Á¤¼öÁß °¡Àå ÀÛÀº ¼ö´Â ¾Æ·¡¿Í °°À½À» °è»êÇÒ ¼ö ÀÖ´Ù.
  • °¡Àå Å« ¾çÀÇ Á¤¼ö : 011111111 11111111 11111111 11111111 (2147483647)
  • °¡Àå ÀÛÀº ¾çÀÇ Á¤¼ö : 100000000 00000000 00000000 00000000 (-2147483648)

¾à°£ È¥¶õ½º·´±â´Â ÇϰÚÁö¸¸, ÀÌÇØÇϴµ¥ Å©°Ô ¾î·Á¿òÀº ¾øÀ» °ÍÀÌ´Ù.

ÀÌ·¸°Ô ÇØ¼­ À½ÀÇ ¼ö¸¦ Ç¥ÇöÇϱä Çߴµ¥, ´ë½Å¿¡ ÀúÀå°¡´ÉÇÑ ¼ýÀÚÀÇ Å©±â°¡ 2^32 ¿¡¼­ 2^31À¸·Î 2¹è¸¸Å­ ÁÙ¾îµëÀ» ¾Ë ¼ö ÀÖ´Ù. ±×·¸´Ù¸é À½¼ö¸¦ »ç¿ëÇÒ Çʿ䰡 ¾øÀ» °æ¿ì ±»ÀÌ ¸¶Áö¸· ºñÆ®¸¦ À½¼öÀÎÁö ¾ç¼öÀÎÁö¸¦ ÆÇ´ÜÇϱâ À§Çؼ­ ³¶ºñÇÒ Çʿ䰡 ¾øÀ» °ÍÀÌ´Ù.

À̸¦ À§Çؼ­ unsigned°¡ Á¦°øµÈ´Ù. ºÎÈ£¾ø´Â ¶æÀ¸·Î ÇØ¼®ÇÏ¸é µÇ¸ç, ±âº» ÀÚ·áÇü¾Õ¿¡ ½áÁֱ⸸ ÇÏ¸é µÈ´Ù. unsigned int´Â ºÎÈ£¾ø´Â Á¤¼ö¸¦ ÀúÀåÇϱâ À§ÇÑ µ¥ÀÌÅÍÇüÀÌ´Ù. µ¿ÀÏÇÏ°Ô unsigned char, unsigned double µîÀÇ ÀÚ·áÇüÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. unsigned°¡ »ý·«µÉ °æ¿ì signed°¡ Àû¿ëµÈ´Ù.

100000000 00000000 00000000 00000000°¡ ÁÖ¾îÁú °æ¿ì signed int ¿¡¼­´Â -2147483648ÀÌ´ø °ÍÀÌ unsigned int ¿¡¼­´Â 2147483648ÀÌ µÇ´Â ½ÄÀÌ´Ù.

´ÙÀ½Àº signed¿Í unsigned¸¦ ÀÌÇØÇϱâ À§ÇÑ °£´ÜÇÑ C ÄÚµå´Ù.
#include <stdio.h> 
#include <string.h> 
 
int main() 
{ 
  int a = -2147483648; 
  printf("%d\n", a); 
  printf("%u\n", a); 
  printf("================\n"); 
  a = a + 1; 
  printf("%d\n", a); 
  printf("%u\n", a); 
} 
 
¾Æ·¡¿Í °°ÀÌ ÄÄÆÄÀÏ ½ÃŰ°í °á°ú±îÁö È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ.
# gcc -o signed signed.c 
# ./signed 
-2147483648 
2147483648 
================ 
-2147483647 
2147483649 
 
printf ÇÔ¼ö´Â °ªÀ» Æ÷¸Ë¿¡ ¸ÂÃß¾î È­¸é¿¡ Ãâ·Â½Ã۱â À§Çؼ­ »ç¿ëÇÏ´Â ÇÔ¼ö´Ù. %d´Â ÁÖ¾îÁø ÀÎÀÚ¸¦ signed int ÇüÀ¸·Î Ãâ·ÂÇ϶ó´Â Æ÷¸Ë¿É¼ÇÀ̰í, %u´Â unsigned ÇüÀ¸·Î Ãâ·ÂÇ϶ó´Â Æ÷¸Ë¿É¼ÇÀÌ´Ù.

1.4 »ó¼ö

º¯¼ö´Â ¸»±×´ë·Î º¯ÇÏ´Â ¼öÀ̰í, »ó¼ö´Â ¸»±×´ë·Î º¯ÇÏÁö ¾Ê´Â ¼öÀÌ´Ù.

»ç¿ëÀÚÀÇ ³ªÀ̸¦ ÀԷ¹޾Ƽ­ ¾î¶² ÀÏÀ» ÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé¾î¾ß ÇÏ´Â °æ¿ì¸¦ »ý°¢Çغ¸ÀÚ. ´ëºÎºÐÀÇ »ç¿ëÀÚ°¡ Á¤»óÀûÀ¸·Î ÀÔ·ÂÇϰÚÁö¸¸, 900, 28129315 ¿Í °°Àº Å͹«´Ï ¾ø´Â ¼ö¸¦ ÀÔ·ÂÇÏ´Â °æ¿ìµµ ¹ß»ýÇÒ °ÍÀÌ´Ù. ÀÌ·± ¹®Á¦´Â ÀԷ°¡´ÉÇÑ ÃÖ´ë°ªÀ» Á¤Çسõ°í ºñ±³ÇÏ´Â °ÍÀ¸·Î ÇØ°á°¡´É ÇÒ°ÍÀÌ´Ù.

¾Æ·¡´Â ÄÄÆÄÀÏ ÈÄ ½ÇÇà°¡´ÉÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥Àº »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¼ýÀÚ·Î º¯È¯ÇÑ´ÙÀ½ 250À» ÃʰúÇÏ´ÂÁö¸¦ °Ë»çÇÑ´Ù.
#include <stdio.h> 
#include <stdlib.h> 
 
int main(int argc, char **argv) 
{ 
    int age;                         // ** º¯¼ö ageÀÇ ¼±¾ð 
    char buf[12];                    // »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ÀúÀåÇÒ ¹öÆÛ 
    const int maxage=250;            // ** »ó¼ö maxageÀÇ ¼±¾ð 
 
  age = 0;                         // ageÀÇ ±âº»°ªÀ¸·Î 0À» ÀÔ·ÂÇÑ´Ù. 
    printf("Your Age is ? "); 
    fgets(buf, 11, stdin);           // Ç¥ÁØÀÔ·ÂÀ¸·Î ÀÔ·ÂÀ» ¹Þ¾Æµé¿©¼­ buf¿¡ ÀúÀåÇÑ´Ù. 
    age = atoi(buf);                 // ÀоîµéÀÎ °ªÀ» int Á¤¼öÇüÀ¸·Î º¯È¯ÇÑ´Ù. 
 
    if (age > maxage)                // age¿Í maxage¸¦ ºñ±³ÇÑ´Ù.  
    { 
        printf("Are you crazy ? \n"); 
        printf("Max age is %d\n", maxage); 
        return 1; 
    } 
    printf("OK your age is %d\n", age); 
    return 0; 
} 
 
»ó¼ö´Â const Ű¿öµå¸¦ À̸§ ¾Õ¿¡ ºÙÀ̸éµÈ´Ù. ¿¹¸¦ µé¾î ¹®ÀÚ¿­ »ó¼ö¸¦ ¼±¾ðÇϱ⸦ ¿øÇÑ´Ù¸é, const char *name = "yundream" ÇÏ¸é µÈ´Ù. const°¡ ÀÏ´Ü ºÙÀ¸¸é, ¼±¾ðÇÒ¶§¿¡¸¸ °ªÀ» ³Ö¾îÁÙ ¼ö ÀÖÀ¸¸ç, Áß°£¿¡ °ªÀ» º¯°æÇÒ ¼ö ¾ø´Ù. age= atoi(buf) ´ÙÀ½ÁÙ¿¡ maxage=180¸¦ ³Ö¾îº¸±â ¹Ù¶õ´Ù. ½ÇÇàÀº Ä¿³ç ÄÄÆÄÀÏÁ¶Â÷ ¾ÈµÉ °ÍÀÌ´Ù.
# gcc -o input input.c 
input.c: In function ¡®main¡¯: 
input.c:13: error: assignment of read-only variable ¡®maxage¡¯ 
 

»ó¼ö¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯´Â ¹»±î ?
»ó¼ö´Â ±ÇÇÑÀ» Á¤ÇÔÀ¸·Î½á, ÇÁ·Î±×·¡¸ÓÀÇ ½Ç¼ö¸¦ ¹Ì¿¬¿¡ ¹æÁöÇϰíÀÚ ÇÒ ¶§ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. À§ÀÇ ¿¹¿¡¼­¿Í °°ÀÌ maxage´Â °íÁ¤µÈ °ªÀ¸·Î ÇÁ·Î±×·¥ ¿©±âÀú±â¿¡¼­ »ç¿ëµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à ÀÌ°Ô º¯¼ö¶ó¸é, ÇÁ·Î±×·¡¸Ó°¡ ½Ç¼ö·Î, ÇÑÂÊ¿¡¼­´Â 150, ´Ù¸¥ ÇÔ¼ö¿¡¼­´Â 100 À¸·Î ÀÔ·ÂÇÏ´Â µîÀÇ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ» °ÍÀ̰í, ÀÌ´Â ÇÁ·Î±×·¥ÀÇ ½É°¢ÇÑ ³í¸®Àû ¹ö±×°¡ µÉ ¼ö ÀÖ´Ù. const¸¦ ÀÌ¿ëÇØ¼­ º¯¼ö¸¦ »ó¼ö·Î ¼±¾ðÇÔÀ¸·Î½á ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¿¹¹æÇÒ ¼ö ÀÖ´Ù.

1.4.1 º¯¼öÀÇ ¼±¾ð°ú Á¤ÀÇ

¾ö°ÝÈ÷ ÇÏÀÚ¸é ¼±¾ðÀº À̸§¸¸ ¸¸µå´Â °ÍÀ̰í, Á¤ÀÇ´Â ¼±¾ðµÈ À̸§¿¡ °ªÀ» ÁÖ´Â ÇàÀ§´Ù.
  1. int i; // intÇü º¯¼ö i¸¦ ¼±¾ðÇÏ´Ù.
  2. int i=a; // intÇü º¯¼ö i¸¦ Á¤ÀÇÇÏ´Ù.
±×·¯³ª C¿¡¼­ º¯¼ö´Â ¼±¾ð°ú µ¿½Ã¿¡ Á¤Àǰ¡ ÀÌ·ç¾î Áö¹Ç·Î Â÷À̰¡ ¾øÀ¸¹Ç·Î, º¯¼ö x¸¦ ¼±¾ðÇß´Ù´Â Àǹ̴ º¯¼ö¿¡ ´ëÇÑ ¼±¾ð°ú Á¤ÀDZîÁö¸¦ ÀǹÌÇÑ´Ù. C ÄÄÆÄÀÏ·¯°¡ int i¸¦ ¼±¾ðÇÔ°ú µ¿½Ã¿¡ 4byteÀÇ ¸Þ¸ð¸® °ø°£À» ÇÒ´çÇϰí, ±× ¸Þ¸ð¸®¿¡ ÀÖ´ø °ªÀ» »ç¿ëÇÏ°Ô µÇ±â ¶§¹®ÀÌ´Ù. ¸Þ¸ð¸®¿¡ ÀÖ´ø °ªÀÌ ¾î¶² °ªÀε¥? ¹°·Ð ±×°ÍÀº ¾Ë µµ¸®°¡ ¾ø´Ù. ÇÁ·Î±×·¥ÀÇ ½ÇÇà½Ã ÇÒ´çµÈ 4byteÀÇ ¸Þ¸ð¸®¿¡ ¾î¶²°ªÀÌ ÀÖ´À³Ä¿¡ µû¶ó ´Þ¶óÁö±â ¶§¹®ÀÌ´Ù. ¾Æ·¡ÀÇ ÇÁ·Î±×·¥À» ¿¬¼ÓÇØ¼­ ½ÇÇà½ÃÄÑ º¸±â ¹Ù¶õ´Ù.
#include <stdio.h> 
 
int main() 
{ 
  int i; 
  printf("%d\n", i); 
} 
 
½ÇÇàÇÒ ¶§ ¸¶´Ù °ªÀÌ ´Þ¶óÁö´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¸°Ô º¯¼ö¸¦ ¼±¾ðÇÒ °æ¿ì ¾î¶² °ªÀÌ µé¾î ÀÖÀ»Áö ¾Ë ¼ö ¾øÀ¸¹Ç·Î, ¼±¾ð°ú µ¿½Ã¿¡ °ªÀ» ÀÔ·ÂÇØÁÖ´Â ÃʱâÈ­ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. ÃʱâÈ­ ÀÛ¾÷À» ÇÏÁö ¾ÊÀ» °æ¿ì ½É°¢ÇÑ ¹®Á¦¸¦ °¡Áø ÇÁ·Î±×·¥ÀÌ ¸¸µé¾î Áú ¼ö Àֱ⠶§¹®ÀÌ´Ù.
<!> ¾Æ·¡ÀÇ ¿¹Á¦´Â Á» ´õ ½¬¿î ¿¹Á¦·Î º¯°æÇÒ Çʿ䰡 ÀÖÀ½..
#include <stdio.h> 
 
int main() 
{ 
  int i = 0; 
  int k; 
  while(k <= 100) 
  { 
    i = i+k; 
    k++; 
  } 
  printf("%d\n", i); 
} 
 
1ºÎÅÍ 100±îÁöÀÇ ¸ðµç ¼ö¸¦ ´õÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µå´Â°Ô ¸ñÀûÀÌ¿´Áö¸¸, kÀÇ °ªÀ» ÃʱâÈ­ ÇØÁÖÁö ¾ÊÀº ÀÌÀ¯·Î ÀüÇô ¾û¶×ÇÑ °á°ú°¡ Ãâ·ÂÀÌ µÉ °ÍÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î ¼±¾ð°ú µ¿½Ã¿¡ ÃʱâÈ­ Çϰųª ȤÀº »ç¿ëÇϱâ Àü¿¡ ÃʱâÈ­ ÇØÁÖ´Â ¼¾½º°¡ ÇÊ¿äÇÏ´Ù.
  int k = 0; 
  ȤÀº 
  int k; 
  k = 0; 
  while(i< 100) 
 

ÀÌ¹Ì ¸î°³ÀÇ ¼ÀÇà ÇÁ·Î±×·¥ÀÇ Äڵ带 (ºñ·Ï ¿ÏÀüÈ÷ ÀÌÇØ ÇÏÁö ¸øÇß°ÚÁö¸¸)º¸¾Æ ¿ÔÀ¸¹Ç·Î, ¾î¶»°Ô º¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÏ´ÂÁö¿¡ ´ëÇÑ °¨Àº Àâ°í ÀÖÀ¸¸®¶ó »ý°¢µÈ´Ù. ¸î°³ÀÇ ¿¹¸¦ ´õ µå´Â °ÍÀ¸·Î ¼³¸íÀ» ¸¶Ä¡µµ·Ï ÇϰڴÙ.
  1. char a : ÇϳªÀÇ ¹®ÀÚ¸¦ ÀúÀåÇϱâ À§ÇÑ ¹®ÀÚÇü º¯¼ö aÀÇ ¼±¾ð
  2. long a : longÇü º¯¼ö aÀÇ ¼±¾ð
  3. char *a : ¸Þ¸ð¸®ÀÇ ÁÖ¼ÒÁ¤º¸¸¦ ÀúÀåÇϱâ À§ÇÑ Æ÷ÀÎÅÍ º¯¼ö aÀÇ ¼±¾ð
    • Æ÷ÀÎÅÍ´Â ³ªÁß¿¡ µû·Î ´Ù·ê °ÍÀÌ´Ù.

2 ¿¬»êÀÚ

¿¬»êÀÚ´Â ´ÜÀÏ ¹®ÀÚȤÀº ´Ü¾î·Î ³»ºÎÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿ì¸®´Â ÀÌ¹Ì ¸î°³ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À» ÅëÇØ¼­ »çÄ¢¿¬»êÀ» À§ÇÑ ¿¬»êÀÚ, ºñ±³¿¬»êÀÚ¸¦ »ç¿ëÇß¾ú´Ù. ÀÌ·¯ÇÑ ¿¬»êÀÚ´Â °á°ú¸¦ Ãâ·ÂÇϱâ À§Çؼ­ ÇϳªÀÌ»óÀÇ ÇÇ¿¬»êÀÚ¸¦ ÇÊ¿ä·Î ÇÑ´Ù. »çÄ¢¿¬»êÀÚ¶ó¸é 2°³ÀÇ ÇÇ¿¬»êÀÚ¸¦ ÇÊ¿ä·Î ÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î µ¡¼ÀÀ» À§ÇÑ ¿¬»êÀÚÀÎ +¸¦ ÀÌ¿ëÇØ¼­ 4 + 5¸¦ Çß´Ù¸é 2°³ÀÇ ÇÇ¿¬»êÀÚ¸¦ ´õÇÑ °á°ú·Î 9¸¦ ¾ò°Ô µÉ °ÍÀÌ´Ù.

C´Â ¸¹Àº ¼öÀÇ ¿¬»êÀÚ¸¦ Á¦°øÇϴµ¥, ´ë·« 3°³ÀÇ Å« Ä«Å×°í¸®·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù.
  • ´ëÀÔ ¿¬»êÀÚ : º¯¼ö¿¡ °ªÀ» ´ëÀÔÇϱâ À§ÇÑ ¿¬»êÀÚ
  • »ê¼ú ¿¬»êÀÚ : +, -, *, / ¿Í °°Àº ¼öÄ¡°è»êÀ» À§ÇÑ ¿¬»êÀÚ
  • ºñ±³ ¿¬»êÀÚ : >, =, < ¿Í °°Àº ºñ±³¸¦ À§ÇÑ ¿¬»êÀÚ
  • ±âŸ ¿¬»êÀÚ : ³í¸® ¿¬»êÀÚ, ºñÆ® ¿¬»êÀÚ, ij½ºÆ® ¿¬»êÀÚ
ÀÌµé ¿¬»êÀÚ´Â Ä«Å×°í¸® º°·Î ÀÚ¼¼È÷ »ìÆìº¸µµ·Ï ÇϰڴÙ.

2.1 ´ëÀÔ ¿¬»êÀÚ

+,- ȤÀº ÇÔ¼öÀÇ °è»ê¿¡ ÀÇÇØ¼­ ¸¸µé¾îÁø °á°ú´Â º¯¼ö¿¡ ÀúÀåÀÌ µÇ¾î¾ß ÇÑ´Ù. ÀÌ·¸°Ô ¾î¶² °á°ú°ªÀ» ´Ù¸¥ º¯¼ö¿¡ ÀúÀåÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¿¬»êÀÚ°¡ ´ëÀÔ ¿¬»êÀÚÀÌ´Ù. ´ëÀÔ¿¬»êÀÚ´Â =¸¦ »ç¿ëÇϸç, ÇϳªÀÇ ÇÇ¿¬»êÀÚ¸¸À» °¡Áø´Ù.

¾Æ·¡¿¡ ´ëÀÔ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ³ª¿Ô´Ù.
int eng, kor, math, total;  
 
eng = 85; 
kor = 76; 
math = 80; 
 
total = eng+kor+math; 
 
´ëÀÔ¿¬»êÀÚ´Â =¸¦ ±âÁØÀ¸·Î ¿À¸¥ÂÊÀÇ °ªÀ» ¿ÞÂÊÀÇ º¯¼ö¿¡ ¹Ð¾î³Ö´Â´Ù. ¿À¸¥ÂÊÀÇ °ªÀ» º¯¼ö¿¡ ÀúÀåÇÑ´Ù°í ÀÌÇØÇÏ¸é µÈ´Ù. À§ Äڵ忡¼­ engº¯¼ö¿¡ 85°¡ ÀúÀåµÇ¾úÀ½À» ¾Ë ¼ö ÀÖ´Ù.

¿ÞÂÊ¿¡´Â ¹Ýµå½Ã º¯¼ö°¡ ¿Í¾ß ÇÑ´Ù. ¾Æ·¡´Â À߸øµÈ ÄÚµå´Ù
5 = 2 + 3; 
 

ÀϹÝÀûÀ¸·Î '''='''¸¦ °°´Ù¶ó´Â Àǹ̷Π»ç¿ëÇÏ´Â °æ¿ì°¡ Àִµ¥, C¿¡¼­ '''='''´Â ºñ±³¸¦ À§Çؼ­ »ç¿ëÇÏ´Â ¿¬»êÀÚ°¡ ¾Æ´Ï´Ù. C´Â °°À½À» ºñ±³¸¦ À§Çؼ­ '''=='''¸¦ »ç¿ëÇÑ´Ù. °æÇèÀÖ´Â ÇÁ·Î±×·¡¸Óµµ '''=='''¸¦ ¾µ°÷¿¡ '''='''¸¦ ¾²´Â À߸øÀº ÈçÇÏ°Ô ÇÑ´Ù.

2.2 ÀÏ¹Ý ¼öÄ¡¿¬»êÀÚ

°¡Àå ±âº»ÀûÀÎ ¿¬»êÀ» À§Çؼ­ »ç¿ëµÈ´Ù. »çÄ¢¿¬»êÀ» À§ÇÑ ¿¬»êÀÚ°¡ ´ëÇ¥ÀûÀÌ´Ù. ´ÙÀ½Àº C¾ð¾î¿¡¼­ Áö¿øÇÏ´Â ÀÏ¹Ý ¼öÄ¡¿¬»êÀÚµéÀÌ´Ù. ÀÌµé ¿¬»êÀÚ´Â C»Ó¸¸ ¾Æ´Ñ ´Ù¸¥ ¸ðµç ¾ð¾î¿¡¼­ °øÅëÀûÀ¸·Î ã¾Æº¼ ¼ö ÀÖ´Ù.
  • + : µ¡¼À
  • - : »¬¼À
  • / : ³ª´°¼À
  • * : °ö¼À
  • % : ³ª¸ÓÁö°ª
+¿Í -´Â ¿ª¼ö¸¦ ¸¸µé±â À§ÇÑ ¸ñÀûÀ¸·Îµµ »ç¿ëµÈ´Ù.
a = 5; 
b = -a; 
// b¿¡´Â -5°¡ ´ëÀԵȴÙ.  
 

2.3 ³í¸® ¿¬»êÀÚ

³í¸® ¿¬»êÀÚ´Â Âü¶Ç´Â °ÅÁþÀ» ÆÇº°Çϱâ À§Çؼ­ »ç¿ëµÈ´Ù. C´Â ´ÙÀ½°ú °°Àº ¿¬»êÀÚ¸¦ Áö¿øÇÑ´Ù.
  • && : AND (¸ðµÎ ÂüÀÏ ¶§ Âü)
  • || : OR (Çϳª¶óµµ ÂüÀ̸é Âü)
  • ! : NOT (ÂüÀÌ¸é °ÅÁþ, °ÅÁþÀ̸é Âü)

¾Æ·¡ÀÇ °æ¿ì a°¡ bº¸´Ù Å©°í, b°¡ cº¸´Ù Å« Á¶°ÇÀÌ ¸ðµÎ ¸¸Á·ÇÒ ¶§ ÂüÀÌ µÈ´Ù.
( a > b) && ( b > c) 
 

¾Æ·¡´Â ¾à°£ ´õ º¹ÀâÇÑ °æ¿ì´Ù.
(a > b) || !(a > c) 
 
a°¡ bº¸´Ù ´õÅ©°Å³ª ȤÀº a °¡ cº¸´Ù Å©Áö ¾Ê´Ù¸é ÂüÀÌ µÈ´Ù.

2.4 Áõ°¨ ¿¬»êÀÚ

C¿¡¼­´Â ++¿Í --¶ó´Â Ư¼öÇÑ ÇüÅÂÀÇ ¿¬»êÀÚ¸¦ Á¦°øÇÑ´Ù. À̵éÀº °¢°¢ Áõ°¡¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚ¶ó°í ºÒ¸®¿î´Ù.
  • ++ : º¯¼ö¿¡ 1À» ´õÇÑ´Ù
  • -- : º¯¼ö¿¡¼­ 1À» »«´Ù.

Áï a = a + 1Àº a++¿Í µ¿ÀÏÇÑ °á°ú¸¦ º¸¿©ÁØ´Ù. ¶ÇÇÑ ++a¿Íµµ µ¿ÀÏÇÑ´Ù. ÄÚµåÀÇ ¾çÀ» ÁÙ¿©¼­ °¡µ¶¼ºÀ» ³ôÀ̱â À§ÇÑ ¸ñÀûÀ¸·Î ÁÖ·Î »ç¿ëµÈ´Ù- Áõ°¨¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù°í ÇØ¼­ ¹Ýµå½Ã °¡µ¶¼ºÀÌ ÁÁ¾ÆÁö´Â °Ç ¾Æ´Ï±ä ÇÏ´Ù -. À̵é Áõ°¨¿¬»êÀÚ´Â Æ÷ÀÎÅÍÀÇ À§Ä¡¸¦ Áõ°¡Çϰųª °¨¼ÒÇϱâ À§ÇÑ ¸ñÀûÀ¸·Îµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Æ÷ÀÎÅÍ´Â ³ªÁß¿¡ ´Ù·ç°Ô µÉ °ÍÀÌ´Ù.


<!> ¾ö°ÝÈ÷ ¸»ÇÏÀÚ¸é a++°ú ++a´Â »ç¿ëµÇ´Â Äڵ忡 µû¶ó¼­ ´Ù¸¥ °á°ú¸¦ º¸¿©ÁÙ ¼öµµ Àִµ¥, ÀÌ´Â ³ªÁß¿¡ ¾ð±ÞÇϵµ·Ï ÇϰڴÙ.

2.5 ºñÆ® ¿¬»êÀÚ

ÄÄÇ»ÅÍ´Â 0-9¸¦ »ç¿ëÇÏ´Â Àΰ£°ú ´Þ¸® 0°ú 1·ÎµÈ ºñÆ®¸¦ ÀÌ¿ëÇØ¼­ °è»êÀ» ÇÑ´Ù´Â °ÍÀº ´Ùµé ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ±×·¯ÇÏ´Ù º¸´Ï ÄÄÇ»Å͸¦ ÀÌ¿ëÇØ¼­ Á¤º¸¸¦ Á¦´ë·Î ´Ù·ç±â À§Çؼ­´Â ºñÆ®¸¦ Á¦´ë·Î ÀÌÇØÇÏ°í ´Ù·ç´Â°Ô ¸Å¿ì Áß¿äÇÏ°Ô µÈ´Ù. ºñÆ® ¿¬»êÀÚ´Â ºñÆ®¸¦ ´Ù·ç±â À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëÇÑ´Ù.

¿ì¸®°¡ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â x86ÄÄÇ»ÅÍÀÇ °æ¿ì byte¸¦ ±âº»´ÜÀ§·Î »ç¿ëÇÏ°Ô µÈ´Ù. ¶§¹®¿¡ ºñÆ®¿¬»êÀÚ¸¦ ÅëÇØ¼­ ºñÆ®¿¬»êÀ» ÇÒ ¶§¿¡µµ byte´ÜÀ§·Î ¿¬»êÇÏ°Ô µÈ´Ù. C´Â ´ÙÀ½°ú °°Àº ºñÆ®¿¬»êÀÚ¸¦ ÁغñÇϰí ÀÖ´Ù.
a & b ºñÆ®´ÜÀ§ AND AND ¿¬»êÀÚ
a | b ºñÆ®´ÜÀ§ OR OR ¿¬»êÀÚ
a ^ b ºñÆ®´ÜÀ§ exclusive (XOR)
a << b ¿ÞÂÊÀ¸·Î ºñÆ®¸¦ À̵¿ ½¬ÇÁÆ® ¿¬»êÀÚ
a >> b ¿À¸¥ÂÊÀ¸·Î ºñÆ®¸¦ À̵¿
~ a NOT

& ¿¬»êÀÚ´Â °£´ÜÇÏ´Ù. ½ÊÁø¼ö 10¿Í 14°¡ ÀÖÀ»°æ¿ì ÀÌ µÎ ¼ö¸¦ & ¿¬»êÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù. |¿¬»êÀº ±»ÀÌ ¼³¸íÇÏÁö ¾Êµµ·Ï ÇϰڴÙ.
 10      00000000 00000000 00000000 00001010 
 14      00000000 00000000 00000000 00001110 
-------------------------------------------- 
        00000000 00000000 00000000 00001010   10  
 

^´Â µÑÁß Çϳª¸¸ ÂüÀÌ¿©¾ß ÂüÀ̵ȴÙ.
  • 0 ^ 0 = 0
  • 0 ^ 1 = 1
  • 1 ^ 0 = 1
  • 1 ^ 1 = 0

½¬ÇÁÆ® ¿¬»êÀÚ Áß << ´Â ºñÆ®¸¦ ¿ÞÂÊÀ¸·Î À̵¿½ÃŲ´Ù. ¿ÞÂÊÀ¸·Î À̵¿½ÃŰ¸é ¿À¸¥ÂÊÀÌ ³²°Ô µÉ°Çµ¥, ³²Àº ÀÚ¸®´Â 0À¸·Î ä¿öÁø´Ù. 6À» << 1Çϸé 12°¡ µÉ°ÍÀÌ´Ù.
    00000000 00000000 00000000 00000110 
    00000000 00000000 00000000 00001100  
 

>>¿¬»êÀÚ´Â ¿À¸¥ÂÊÀ¸·Î À̵¿½Ã۴µ¥, ÁÖÀÇÇÒ Çʿ䰡 ÀÖ´Ù. ¿À¸¥ÂÊÀ¸·Î À̵¿½ÃŰ¸é ¿ÞÂÊ ºñÆ®°¡ ³²°Ô µÉ°Çµ¥, À̶§ ³²´Â ºñÆ®´Â ¿À¸¥ÂÊ¿¡ ÀÖ´ø ºñÆ®·Î ä¿öÁö°Ô µÈ´Ù´Â Á¡ÀÌ´Ù. ¾Æ·¡ÀÇ ¿¹¸¦ º¸ÀÚ.
    10000000 00000000 00000000 00000000 À̰ÍÀ» >> 1Çϸé 
    11000000 00000000 00000000 00000000 ÀÌ·¸°Ô µÈ´Ù.  
 

~¿¬»êÀÚ´Â 0À» 1·Î, 1À» 0À¸·Î º¯°æÇÑ´Ù. ¸¸¾à int µ¥ÀÌÅÍ Å¸ÀÔÀÎ 1¿¡ ´ëÇØ¼­ ~ ÇØÁÙ°æ¿ì -2°¡ µÉ°ÍÀÌ´Ù. ¿Ö³ÄÇϸé
    00000000 00000000 00000000 00000001 
    11111111 11111111 11111111 11111110  ~ 
 
ÀÌ µÇ´Âµ¥, 2ÀÇ º¸¼ö ¿¬»ê¿¡ ÀÇÇØ¼­ -1·Î ÀçÇöµÈ´Ù. 2ÀÇ º¸¼ö¿¡ ´ëÇØ¼­´Â ¸®´ª½ºÈ¯°æ¿¡¼­ÀÇ C ÇÁ·Î±×·¡¹Ö 5Àå µ¥ÀÌÅÍ ´Ù·ç±â¸¦ Âü°íÇÑ´Ù.

2.6 ¿¬»êÀÚÀÇ »ç¿ë

´ÙÀ½Àº Áö±Ý±îÁö ¹è¿î ¿¬»êÀÚ¸¦ Ȱ¿ëÇÑ °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù.

#include <stdio.h> int main() { int my_int; printf("ÀÏ¹Ý ¼öÄ¡¿¬»ê : \n\n"); my_int = 6; // ´ëÀÔ printf("my_int = %d, -my_int = %d\n", my_int, -my_int); printf("int 1+2 = %d\n", 1 + 2); printf("int 5-1 = %d\n", 5 - 1); printf("int 5*1 = %d\n", 5 * 1); printf("int 5/2 = %d\n", 5 / 2); printf("int 5/2 = %d\n", 5 % 2); printf("double 9/4 = %f\n", 9.0 / 4.0); }
ÇÁ·Î±×·¥ÀÇ ½ÇÇà°á°ú°¡ ¾î¶°ÇÒ·±Áö ¿¹»óÇÏ´Â°Ç ¾î·ÆÁö ¾ÊÀ» °ÍÀÌ´Ù. ÄÄÆÄÀÏ ÈÄ ½ÇÇà½ÃÄѼ­ ¿¹»óÇÑ °á°ú°¡ ³ª¿Ô´ÂÁö È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ.

2.7 ¿¬»êÀÚ ¿ì¼±¼øÀ§

¿¬»êÀÚ ¿ì¼±¼øÀ§´Â ¿©·¯°³ÀÇ ¿¬»êÀÚ·Î ÀÌ·ç¾îÁø ¶óÀÎ Äڵ尡 ÀÖÀ» °æ¿ì, ¾î¶² ¼ø¼­·Î ó¸®ÇÒ °ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§Çؼ­ »ç¿ëµÈ´Ù. ´ÙÀ½Àº 2+5*4 ÀÇ ¿¬»ê°á°ú¸¦ Ãâ·ÂÇÏ´Â ÄÚµå´Ù.
#include <stdio.h> 
 
int main() 
{ 
  printf("%d\n", 2 + 5 * 4); 
} 
 
¾ð¶æ »õ°¢Çϱ⿡ 28À̶ó´Â °á°ú°¡ ³ª¿Ã °Å¶ó°í ¿¹»óÇÒ ¼ö ÀÖÁö¸¸, C´Â ³ª¸§´ë·ÎÀÇ ¿¬»êÀÚ ¿ì¼±¼øÀ§¿¡ µû¶ó¼­ *¿¬»êÀ» +¿¬»êº¸´Ù ¸ÕÀúÇÏ°Ô µÈ´Ù. ±×·¡¼­ 22¶ó´Â °á°ú°¡ ³ª¿À°Ô µÈ´Ù. Áï À§ÀÇ ÄÚµåÀÇ °æ¿ì C´Â ((5*4) + 2)·Î ÇØ¼®Çؼ­ °è»êÀ» ÇÑ´Ù. ´«Ä¡Ã«°ÚÁö¸¸ ¿¬»ê¼øÀ§¸¦ ¹«½ÃÇϰųª À߸ø ÀÌÇØÇÒ °æ¿ì ÀüÇô ¾û¶×ÇÑ À߸øµÈ ÇÁ·Î±×·¥À» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.

´ÙÀ½Àº C¿¡¼­ Àû¿ëµÇ´Â ¿¬»êÀÚ ¿ì¼±¼øÀ§´Ù. Âü°í·Î °áÇÕ¼ºÀº ¿ì¼±¼øÀ§°¡ °°Àº ¿¬»êÀÚµéÀÌ ¿©·µÀÖÀ» °æ¿ì ¾î´À¹æÇâÀ¸·Î ó¸®ÇÒ °ÇÁö¸¦ °áÁ¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù. ÁÂ->¿ì´Â ¿ÞÂÊ¿¡¼­ ¸ÕÀú, ¿ì->Á´ ¿À¸¥ÂÊ¿¡¼­ ¸ÕÀú °è»êÇÑ´Ù´Â °É ÀǹÌÇÑ´Ù.
¼øÀ§ ¿¬»êÀÚ °áÇÕ¼º
1 (), [], -> . ÁÂ-> ¿ì
2 !, -, ++, --, +(´ÜÇ×), -(´ÜÇ×), *(Æ÷ÀÎÅÍ), &, sizeof ¿ì->ÁÂ
3 *, /, % ÁÂ->¿ì
4 +, - ÁÂ->¿ì
5 <<, >> ÁÂ->¿ì
6 <, <=, >, >= ÁÂ->¿ì
7 ==, != ÁÂ->¿ì
8 &(ºñÆ®¿¬»êÀÚ) ÁÂ->¿ì
9 ~ ÁÂ->¿ì
10 | ÁÂ->¿ì
11 && ÁÂ->¿ì
12 | | ÁÂ->¿ì
13 ?: ÁÂ->¿ì
14 , ¿ì->ÁÂ

À§ÀÇ ¿ì¼±¼øÀ§¸¦ ÀÌÇØÇß´Ù¸é, ¾Æ·¡ÀÇ Á» º¹ÀâÇØ º¸ÀÌ´Â Äڵ尡 ¾î¶»°Ô °è»êµÉÁö ¿¹»óÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
a=10*3-40/20*12+20%-2 
 
À§ÀÇ ÄÚµå´Â ´ÙÀ½°í °°ÀÌ °è»êµÈ´Ù.
a=[(10*3)-{(40/20)*15}]+{20%(-2)} 
 

±×·¯³ª ¿¬»ê¼øÀ§¸¦ ÀÌÇØÇϰí ÀÖ´Ù°í ÇÏ´õ¶óµµ ¸¹Àº ¿¬»êÀÌ µé¾î°¡´Â Äڵ带 ÀÛ¼ºÇÏ´Ù º¸¸é ÇÊ¿¬ÀûÀ¸·Î ½Ç¼ö¸¦ ÇÏ°Ô µÈ´Ù. °Ô´Ù°¡ ÄÚµåÀÇ °¡µ¶¼ºµµ ±ØÀûÀ¸·Î ¶³¾îÁø´Ù. a=10*3-40/20*12+20%-2°¡ ¹«½¼ÀÏÀ» ÇÏ´ÂÁö ÇÑ´«¿¡ ÀÌÇØÇϱâ¶õ ½¬¿îÀÏÀÌ ¾Æ´Ï´Ù. ±×·¯´Ï ¿¬»ê¼øÀ§°°Àº °Í¿¡ ½Å°æ¾²Áö¸»°í °ýÈ£ ()¸¦ ÀÌ¿ëÇØ¼­ Á÷Á¢ ¿ì¼±¼øÀ§¸¦ Á¤ÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇϵµ·Ï ÇÑ´Ù. a=10*3-40/20*12+20%-2¸¦ °ýÈ£¸¦ ÀÌ¿ëÇÏ¸é ´ÙÀ½°ú °°ÀÌ Àç ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ½Ç¼öµµ ¸·¾ÆÁÙ »Ó´õ·¯, ÀÌÇØÇϱ⵵ ÈξÀ ½±´Ù´Â°É ´À³¥ °ÍÀÌ´Ù.
a = ( (10*3) - ((40/20)*15) ) + ( 20%(-2) ) 
 

3 define ¹®ÀÇ »ç¿ë

execl°ú °°Àº Ç¥°è»ê ÇÁ·Î±×·¥À» »ç¿ëÇØºÃ´Ù¸é, ¸ÅÅ©·Î¶ó´Â ±â´É¿¡ ´ëÇØ¼­ ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ¸ÅÅ©·Î¶ó´Â °ÍÀº ¾î¶² °ªÀ̳ª °è»êÀÇ °ø½ÄÀ» ¹Ì¸® Á¤ÀÇ(define)¸¦ ÇØµÎ´Â °ÍÀ» ¸»ÇÑ´Ù. ÀÌ·¸°Ô Á¤ÀÇµÈ ¸ÅÅ©·Î´Â Ç¥°è»ê º»¹®¿¡ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ¸ÅÅ©·Î¿¡ Á¤ÀÇµÈ ±× ±â´ÉÀ» ±×´ë·Î ¼öÇàÇÏ°Ô µÈ´Ù. ´Þ¸® ¸»ÇÏÀÚ¸é, Ç¥°è»ê º»¹®À» Àо´Ù°¡ ¸ÅÅ©·Î¿¡ ¼±¾ðÇØµÐ ¹®ÀÚ¿­À» ¸¸³ª¸é, Á¤ÀÇµÈ °ªÀ̳ª °ø½ÄÀ¸·Î Ç®¾î¼­ ¾²´Â °ÍÀ¸·Î ÇØ¼®ÇÒ ¼ö ÀÖ´Ù.

À̰ÍÀº ¸¹Àº ÀåÁ¡À» °¡Á®´Ù ÁØ´Ù. ÀÚÁÖ »ç¿ëÇÏ´Â ±â´ÉÀ» ¸ÅÅ©·Î·Î ¸¸µé¾îµÎ¸é, ¸Å¹ø ÀÛ¼ºÇÒ ÇÊ¿ä ¾øÀÌ °£´ÜÇÏ°Ô ¸ÅÅ©·Î¸¸ °¡Á®´Ù »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§¿Í ¸¶Âù°¡ÁöÀÇ Æí¸®ÇÔÀ̶ó°í º¼ ¼ö ÀÖ´Ù. À̰æ¿ì ÇÔ¼ö¿Í´Â ´Ù¸¥ Á¡ÀÌ Àִµ¥, ÀÌ¿¡ ´ëÇØ¼­´Â ³ªÁß¿¡ ¼³¸íÇϵµ·Ï ÇϰڴÙ. ¶Ç´Ù¸¥ »ç¿ëó´Â »ó¼öó·³ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.

3.1 define ¹®¹ý

define´Â ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
#define NAME VALUE 
 

¾Õ¿¡¼­ define´Â »ó¼öó·³ »ç¿ëÇÒ ¼ö ÀÖ´Ù°í ¹è¿ü´Ù. Áö±Ý ³ªÀ̸¦ ÀÔ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù°í °¡Á¤ÇØ º¸ÀÚ. À̶§ ³ªÀÌÀÇ ÇѰèÄ¡¸¦ Á¤Çؼ­, ÀÌ °ªÀ» ÃʰúÇÏ´Â °æ¿ì ¿¡·¯Ã³¸®¸¦ Çϵµ·Ï ÇÏ°í ½Í´Ù¸é, ´ÙÀ½°ú °°ÀÌ »ó¼ö¸¦ Á¤ÀÇÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
const int MAX_AGE 250; 
 
define ¹®À» ÀÌ¿ëÇØ¼­ µ¿ÀÏÇÑ ÀÏÀ» Çϵµ·Ï ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
#define MAX_AGE 250 
 

»Ó¸¸ ¾Æ´Ï¶ó ÇÔ¼öó·³ »ç¿ëÇϵµ·Ï ÇÒ¼ö ÀÖ´Ù. ´ÙÀ½Àº µ¡¼ÀÀ» ÇÏ´Â °úÁ¤À» define ¹®À¸·Î ÀÛ¼ºÇÑ ¿¹ÀÌ´Ù.
#define add(a,b) (a+b) 
 
int main() 
{ 
    printf("%d\n", add(1,2)); 
} 
 

3.2 define ¹®¿¡ ´ëÇØ¼­ »ý°¢Çغ¸ÀÚ

À§¿¡¼­ define ¹®À» »ç¿ëÇÑ °ÍÀ» º¸¸é, ÇÔ¼öÀÇ ¿ëµµ·Î½á ȤÀº »ó¼ö¸¦ Á¤ÀÇÇϱâ À§ÇÑ ¿ëµµ·Î½á »ç¿ëÇÒ ¼ö ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ¾ð¶æ º¸±â¿£ µ¿ÀÏÇØ º¸ÀÌÁö¸¸ ¸î°¡Áö Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù.

ÀÌ Â÷ÀÌÁ¡À» ¾Ë¾Æº¸±â À§Çؼ­´Â C¿¡¼­ define¹®À» ¾î¶»°Ô ´Ù·ç´ÂÁö¿¡ ´ëÇØ¼­ ÀÌÇØ¸¦ ÇØ¾ß ÇÑ´Ù.

C·Î ¸¸µé¾îÁø Äڵ尡 ½ÇÇà°¡´ÉÇÑ ÆÄÀÏÀÌ µÇ±â À§Çؼ­´Â ¸î°¡ÁöÀÇ °úÁ¤À» °ÅÃÄ¾ß µÈ´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. º¹½ÀÂ÷¿ø¿¡¼­ °úÁ¤À» ¿ä¾àÇØ º¸¾Ò´Ù. ´ë·«ÀûÀÎ ¼³¸íÀº 3ÀåÀ» Àо±â ¹Ù¶õ´Ù.
  1. precomile
  2. Assembly ÄÚµå »ý¼º
  3. Object ÆÄÀÏ »ý¼º
  4. linker
  5. ½ÇÇàÆÄÀÏ

¿©±â¿¡¼­ precompile¸¦ ÁÖ¸ñÇÒ Çʿ䰡 ÀÖ´Ù. precompile´Â ÄÄÆÄÀÏ Àü´Ü°è·Î Àΰ£ÀÌ ÇØ¼®Çϱ⠽±°Ô µÇ¾î ÀÖ´Â Äڵ带 ÄÄÆÄÀÏ·¯°¡ ´õ ÇØ¼®Çϱâ ÁÁÀº ÇüÅ·ΠǮ¾î¾²°Ô µÈ´Ù. ¿©±â¿¡¼­ define¹®À¸·Î Á¤ÀÇµÈ °ªµéÀÌ ¸ðµÎ ÄÚµå ÇüÅ·ΠǮ¾î½áÁö°Ô µÈ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº Äڵ尡 ÀÖ´Ù°í °¡Á¤Çغ¸ÀÚ. ¾Æ·¡´Â ÄÄÆÄÀÏ °¡´ÉÇÑ ¿ÏÀüÇÑ ÄÚµå´Â ¾Æ´Ï´Ù. precomile °úÁ¤¿¡¼­ define ¹®ÀÌ ¾î¶»°Ô 󸮵ǴÂÁö¸¦ ¼³¸íÇϱâ À§ÇÑ ÇÁ·Î½ÃÁ® ÄÚµå´Ù.
#define add(a,b) (a+b); 
#define MAX_NUM 250 
#define MIN_NUM 0 
int main() 
{ 
    int a, b; 
    a = add(1,2); 
    b = add(51,88); 
 
    if (a < MIN_NUM) 
    { 
        .... 
    } 
    if ( b > MAX_NUM) 
    { 
    } 
     
} 
 

À§ÀÇ ÄÚµå´Â precompile °úÁ¤À» °ÅÄ¡°Ô µÇ¸é, Äڵ忡 µîÀåÇÏ´Â ¸ðµç define°ªÀÌ Á¤ÀÇµÈ ÄÚµå·Î Ç®¾î½áÁö°Ô µÈ´Ù.
int main() 
{ 
   a = 1 + 2; 
   b = 51 + 88; 
   if (a < 0) 
   { 
      ... 
   } 
   if (b > 250) 
   { 
       ... 
   } 
} 
 

define ¹®ÀÌ ¾î¶»°Ô 󸮵ǴÂÁö ÀÌÇØ°¡ µÇ¾úÀ» °ÍÀÌ´Ù.

3.3 define ¹®°ú ÇÔ¼öÀÇ Â÷ÀÌ

À§ÀÇ Äڵ忡¼­ ¿ì¸®´Â #define ¹®À» ÀÌ¿ëÇØ¼­ µ¡¼ÀÀ» ÇÏ´Â ¸ÅÅ©·Î ÇÔ¼ö¸¦ Á¤ÀÇÇØ¼­ »ç¿ëÇß´Ù. ±×·¸´Ù¸é, ¾Æ·¡¿Í °°ÀÌ ¸¸µé¾îÁø ÇÔ¼ö¿Í ¹«½¼ Â÷À̰¡ ÀÖ´ÂÁö°¡ ±Ã±ÝÇØÁú °ÍÀÌ´Ù.
int add(int a, int b) 
{ 
    return a+b; 
} 
 

define ¹®À¸·Î Á¤ÀÇµÈ °ÍµéÀº precompile °úÁ¤À» °ÅÄ¡¸é¼­ ¿ø·¡ ÄÚµå·Î ġȯµÈ´Ù´Â Á¡À» ¹è¿ü´Ù. ÇÁ·Î±×·¥¿¡ Äڵ尡 ¿ÏÀüÈ÷ ¹ÚÇô ¹ö¸®´Â °Å¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. 100°³ÀÇ add ¸ÅÅ©·Î¸¦ »ç¿ëÇß´Ù¸é, Äڵ忡 100°³ ¸¸Å­ÀÌ º¹»çµÇ¾î¼­ µé¾î°£´Ù. ¹Ý¸é ÇÔ¼ö´Â ÇϳªÀÇ ¿øº»Äڵ尡 Á¸ÀçÇϰí, ÇÊ¿äÇÒ¶§ ¸¶´Ù È£ÃâÇØ¼­ ½ÇÇà½ÃŰ´Â ¹æ¹ýÀ» »ç¿ëÇÑ´Ù.

¿©±â¿¡¼­ ´ÙÀ½°ú °°Àº Â÷ÀÌÁ¡ÀÌ »ý±èÀ» ¾Ë ¼ö ÀÖ´Ù.
  1. define¹®Àº define°ªÀÌ ¾²¿©Áø ¸ðµç °÷¿¡ Äڵ尡 ¹ÚÈù´Ù. ´ç¿¬È÷ ½ÇÇàÆÄÀÏÀÇ Å©±â°¡ Ä¿Áú °ÍÀÌ´Ù.
  2. ¹Ý¸é ÇÔ¼öº¸´Ù ´õ ºü¸£°Ô ½ÇÇàµÈ´Ù. Äڵ尡 Á÷Á¢ ¹ÚÇôÀֱ⠶§¹®Àε¥ ¹ÝÇØ, ÇÔ¼öÀÇ °æ¿ì ÇÔ¼ö¸¦ È£ÃâÇϱâ À§ÇÑ ½Ã°£ÀÌ ¼ÒºñµÇ±â ¶§¹®ÀÌ´Ù.

3.4 define ¹®°ú const »ó¼öÀÇ Â÷ÀÌ

define ¹®°ú ÇÔ¼öÀÇ Â÷ÀÌÁ¡°ú ºñ½ÁÇÏ´Ù. define ¹®À» ÀÌ¿ëÇϸé, precompile °úÁ¤À» °ÅÄ¡¸é¼­ º¯¼ö°¡ ¾Æ´Ñ °ªÀÌ Á÷Á¢ Äڵ忡 ¹ÚÇô¹ö¸°´Ù. ¹Ý¸é »ó¼ö´Â °ªÀ» °¡Áø°Ô ¾Æ´Ñ, °ªÀÌ ÀúÀåµÈ ÁÖ¼ÒÀÇ °ªÀ» °¡Áø °ÍÀ̹ǷÎ, ÇØ´ç ÁÖ¼ÒÀÇ °ªÀ» Àоî¿À´Â °úÁ¤À» °ÅÄ¡°Ô µÈ´Ù. ÀϹݺ¯¼ö¿Í ±Ùº»ÀûÀ¸·Î µ¿ÀÏÇÑ °úÁ¤À» °ÅÄ£´Ù. ´Ü const ¶ó°í ¸í½ÃÇÔÀ¸·Î½á, ¾²±â°¡ ºÒ°¡´ÉÇϵµ·Ï Á¦ÇÑÇÏ´Â °ÍÀÏ »ÓÀÌ´Ù.

¿ª½Ã define ¹®À» »ç¿ëÇÏ¸é »ó¼ö¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù ¼Óµµ¿¡ À־ ¾à°£ÀÇ À̵æÀ» ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¹°·Ð ÀÌ·¯ÇÑ À̵æÀ» ³ë¸®°í define ¹®À» ½á¾ßÇÏ´Â °æ¿ì´Â »ý±âÁö ¾Ê°ÚÁö¸¸ ¸»ÀÌ´Ù.

´Ü define¹®Àº »ó¼ö¸¦ ¼±¾ðÇÏ´Â °Í°ú´Â ´Þ¸® ŸÀÔÀ» µû·Î ÁöÁ¤ÇÒ ¼ö ¾ø´Ù´Â ´ÜÁ¡À» °¡Áö°í ÀÖ´Ù. °£´ÜÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ±â´Â ÇÏÁö¸¸ #define MAX_NUM 100 À̶ó°í µÇ¾î ÀÖÀ»¶§, ÀÌ°Ô unsigned ÇüÀÎÁö, long long Çü, short Çü ÀÎÁö¸¦ ¸íÈ®È÷ ¾Ë ¼ö ¾ø°Ô µÈ´Ù. ÀÌ·¯ÇÑ Á¡Àº ŸÀÔÀ» ¾ö°ÝÈ÷ ÇØ¾ß ÇÏ´Â ÇÁ·Î±×·¥¿¡ ÀáÀçÀûÀÎ ¹®Á¦¿ä¼Ò·Î ÀÛ¿ëÇÒ ¼ö ÀÖ´Ù.

3.5 ¸ÞÅ©·Î·Î½áÀÇ define

define´Â ¸ÞÅ©·ÎÀÇ Æ¯Â¡À» °¡Áø´Ù. ÀÌ´Â ±× define¹®ÀÌ ÇÁ·Î±×·¥Ã³·³ ÀÛµ¿ÇϰԲû ¸¸µé ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀº ƯÈ÷ ¼­·Î ´Ù¸¥ ¿î¿µÃ¼Á¦¿¡¼­ ÀÛµ¿ÇØ¾ß ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϰíÀÚ ÇÒ¶§ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ Äڵ带 º¸ÀÚ.
    FILE *fp = NULL; 
    fp = fopen("/home/test/test.txt", "rt"); 
    .... 
    fread( buffer, size, 1, fp ); 
    fclose(fp); 
 
ÀÌ ÇÁ·Î±×·¥Àº ÆÄÀÏÀ» Àоîµé¿©¼­, ±× ³»¿ëÀ» Ãâ·ÂÇÏ´Â ÀÏÀ» ÇÑ´Ù. À§ ÄÚµå´Â ¸®´ª½º»ó¿¡¼­ »ç¿ëÇϴµ¥ ÀüÇô ¹®Á¦°¡ ¾øÀ» °ÍÀÌ´Ù. ±×·¯³ª À©µµ¿ì¿¡¼­ »ç¿ëÇÒ °æ¿ì ¹®Á¦°¡ µÉ°ÍÀÌ´Ù. À©µµ¿ì¿Í ¸®´ª½º´Â ÆÄÀÏÀÇ µð·ºÅ丮 °æ·Î¸¦ Á¤ÇÏ´Â ±ÔÄ¢ÀÌ ¼­·Î ´Ù¸£±â ¶§¹®ÀÌ´Ù. À©µµ¿ì´Â /home/test/test.txt¶ó´Â °æ·Î¸¦ ÀνÄÇÒ ¼ö°¡ ¾øÀ¸¹Ç·Î, À§ ÇÁ·Î±×·¥Àº À©µµ¿ì¿¡¼­´Â Á¦´ë·Î ±â´ÉÀ» ÇÒ ¼ö°¡ ¾øÀ» °Í´Ù.

Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ À©µµ¿ì¸¸À» À§ÇÑ Àü¿ëÀÇ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °ÍÀÌ´Ù.
    FILE *fp = NULL; 
    fp = fopen("c:\\tmp\\test.txt", "rt"); 
    .... 
    fread( buffer, size, 1, fp ); 
    fclose(fp); 
 
°£´ÜÇϱä ÇÏÁö¸¸ Äڵ尡 2°³·Î ºÐ¸®°¡ µÊÀ¸·Î½á À¯Áöº¸¼ö°¡ ±î´Ù·Î¿ÍÁø´Ù´Â ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. define ¹®À» ÀÌ¿ëÇϸé ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡´Â À©µµ¿ì¿Í ¸®´ª½º ¸ðµÎ¿¡¼­ »ç¿ë°¡´ÉÇϵµ·Ï ÀçÀÛ¼ºµÈ ÄÚµå´Ù.
#define LINUX  
    FILE *fp = NULL; 
#ifdef LINUX 
    fp = fopen("/home/test/test.txt", "rt"); 
#else 
    fp = fopen("c:\\tmp\\test.txt", "rt" );  
#endif 
 
    fread( buffer, size, 1, fp ); 
    fclose(fp); 
 
ifdef ´Â µÚ¿¡ ¿À´Â °ªÀÌ defineÀ» ÅëÇØ¼­ Á¤ÀǵǾî ÀÖ´ÂÁö¸¦ È®ÀÎÇÑ´Ù. ¾Õ¼­ LINUX°¡ Á¤ÀǵǾî Àֱ⠶§¹®¿¡, ÂüÀÌµÇ°í ¹Ø¿¡ ÀÖ´Â fopen("/home/test/test.txt","rt")°¡ Äڵ忡 ³²°Ô µÈ´Ù. ¸¸¾à ÀÌ ÇÁ·Î±×·¥À» À©µµ¿ì¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í ½Í´Ù¸é #define LINUX¸¦ Á¦°ÅÇÏ¸é µÈ´Ù. ±×·¯¸é #ifdef LINUX¸¦ ¸¸Á·ÇÏÁö ¸øÇÏ°Ô µÇ°í fp = fopen("c:\\tmp\\test.txt", "rt" ); °¡ ´ë½Å Äڵ忡 ³²°Ô µÊÀ¸·Î½á, À©µµ¿ì¿¡¼­ ¹®Á¦¾øÀÌ ½ÇÇà°¡´ÉÇÏ°Ô µÉ °ÍÀÌ´Ù.

¸®´ª½º´Â À¯´Ð½º¿Í ºñ½ÁÇÑ °³¹ßȯ°æÀ» Á¦°øÇÏ´Â ÀÌÀ¯·Î, ¸®´ª½º¿¡¼­ ¸¸µé¾îÁø ÇÁ·Î±×·¥À» ´Ù¸¥ À¯´Ð½º·Î ¿Å°Ü¾ß ÇÏ´Â ¿ä±¸°¡ ÈçÈ÷ ¹ß»ýÇÑ´Ù. ½ÇÁ¦ ´ëºÎºÐÀÇ °ø°³¼ÒÇÁÆ®¿þ¾îµéÀÌ ¸®´ª½º »Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ À¯´Ð½º¿¡¼­µµ µ¿ÀÏÇÏ°Ô ÀÛµ¿ÇÏ°Ô ÀÛ¼ºµÇ¾î ÀÖ´Ù. define ¹®Àº ÀÌ·¸°Ô ¿©·¯°³ÀÇ ¿î¿µÃ¼Á¦¿¡¼­ »ç¿ëµÇ¾î¾ß ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϰíÀÚ ÇÒ¶§, °ÅÀÇ ÇʼöÀûÀ¸·Î »ç¿ëµÈ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.