ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 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.2.1 ¸í¸í ±ÔÄ¢
º¯¼ö¸í°ú »ó¼ö¸íÀº ¾ËÆÄºª ¿µ¹®ÀÚ¿Í ¼Ò¹®ÀÚ, ¼ýÀÚ,_°¡ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¶ÇÇÑ Ã¹±ÛÀÚ´Â ¹Ýµå½Ã '¿µ¹®¼Ò¹®ÀÚ','´ë¹®ÀÚ', '_'¿©¾ß ÇÑ´Ù.
1.3 µ¥ÀÌÅÍ Çü°ú Å©±â1.3.1 ±âº» µ¥ÀÌÅÍ Çü
Àΰ£°ú ´Þ¸® »ç¹°À» Ãß»óÈ ½ÃÄѼ »ý°¢ÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ ¾ø´Â ÄÄÇ»ÅÍÀÌ´Ù º¸´Ï, µ¥ÀÌÅͰ¡ ¾î¶² Á¾·ùÀÇ °ÍÀ̸ç (µ¥ÀÌÅÍÇü), ¾î´ÀÁ¤µµÀÇ Å©±â (µ¥ÀÌÅÍ Å©±â)¸¦ °¡Áö°í ÀÖ´ÂÁö¸¦ ¸íÈ®È÷ ¾Ë·ÁÁà¾ß ÇÒ Çʿ䰡 ÀÖ´Ù.
Àΰ£Àº "õ¿øÀº Å«µ·ÀÌ´Ù"¿Í "1000+2000=3000" ¿¡¼ ¹®ÀÚ¿ "õ"°ú ¼ýÀÚ "1000"À» ±¸ºÐÇØ ³¾ ¼ö ÀÖÁö¸¸ ÄÄÇ»ÅÍ´Â µµ´ëü ±¸ºÐÇØ ³¾ ¼ö°¡ ¾ø±â ¶§¹®ÀÌ´Ù.
¶§¹®¿¡ ¸ðµç ¾ð¾î´Â °íÀ¯ÀÇ Å©±â¸¦ °¡Áö´Â µ¥ÀÌÅÍ Çü(Type)À» Á¦°øÇϰí ÀÖ´Ù. C¾ð¾î´Â ´ÙÀ½°ú °°Àº Å©±â¸¦ °¡Áö´Â µ¥ÀÌÅÍ ÇüÀÌ ÁغñµÇ¾î ÀÖ´Ù.
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^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 2147483649printf ÇÔ¼ö´Â °ªÀ» Æ÷¸Ë¿¡ ¸ÂÃß¾î ȸ鿡 Ãâ·Â½Ã۱â À§Çؼ »ç¿ëÇÏ´Â ÇÔ¼ö´Ù. %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 º¯¼öÀÇ ¼±¾ð°ú Á¤ÀÇ
¾ö°ÝÈ÷ ÇÏÀÚ¸é ¼±¾ðÀº À̸§¸¸ ¸¸µå´Â °ÍÀ̰í, Á¤ÀÇ´Â ¼±¾ðµÈ À̸§¿¡ °ªÀ» ÁÖ´Â ÇàÀ§´Ù.
#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)
ÀÌ¹Ì ¸î°³ÀÇ ¼ÀÇà ÇÁ·Î±×·¥ÀÇ Äڵ带 (ºñ·Ï ¿ÏÀüÈ÷ ÀÌÇØ ÇÏÁö ¸øÇß°ÚÁö¸¸)º¸¾Æ ¿ÔÀ¸¹Ç·Î, ¾î¶»°Ô º¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÏ´ÂÁö¿¡ ´ëÇÑ °¨Àº Àâ°í ÀÖÀ¸¸®¶ó »ý°¢µÈ´Ù. ¸î°³ÀÇ ¿¹¸¦ ´õ µå´Â °ÍÀ¸·Î ¼³¸íÀ» ¸¶Ä¡µµ·Ï ÇϰڴÙ.
2 ¿¬»êÀÚ
¿¬»êÀÚ´Â ´ÜÀÏ ¹®ÀÚȤÀº ´Ü¾î·Î ³»ºÎÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿ì¸®´Â ÀÌ¹Ì ¸î°³ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À» ÅëÇØ¼ »çÄ¢¿¬»êÀ» À§ÇÑ ¿¬»êÀÚ, ºñ±³¿¬»êÀÚ¸¦ »ç¿ëÇß¾ú´Ù. ÀÌ·¯ÇÑ ¿¬»êÀÚ´Â °á°ú¸¦ Ãâ·ÂÇϱâ À§Çؼ ÇϳªÀÌ»óÀÇ ÇÇ¿¬»êÀÚ¸¦ ÇÊ¿ä·Î ÇÑ´Ù. »çÄ¢¿¬»êÀÚ¶ó¸é 2°³ÀÇ ÇÇ¿¬»êÀÚ¸¦ ÇÊ¿ä·Î ÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î µ¡¼ÀÀ» À§ÇÑ ¿¬»êÀÚÀÎ +¸¦ ÀÌ¿ëÇØ¼ 4 + 5¸¦ Çß´Ù¸é 2°³ÀÇ ÇÇ¿¬»êÀÚ¸¦ ´õÇÑ °á°ú·Î 9¸¦ ¾ò°Ô µÉ °ÍÀÌ´Ù.
C´Â ¸¹Àº ¼öÀÇ ¿¬»êÀÚ¸¦ Á¦°øÇϴµ¥, ´ë·« 3°³ÀÇ Å« Ä«Å×°í¸®·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù.
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´Â ´ÙÀ½°ú °°Àº ¿¬»êÀÚ¸¦ Áö¿øÇÑ´Ù.
( a > b) && ( b > c)
¾Æ·¡´Â ¾à°£ ´õ º¹ÀâÇÑ °æ¿ì´Ù. (a > b) || !(a > c)a°¡ bº¸´Ù ´õÅ©°Å³ª ȤÀº a °¡ cº¸´Ù Å©Áö ¾Ê´Ù¸é ÂüÀÌ µÈ´Ù. 2.4 Áõ°¨ ¿¬»êÀÚ
C¿¡¼´Â ++¿Í --¶ó´Â Ư¼öÇÑ ÇüÅÂÀÇ ¿¬»êÀÚ¸¦ Á¦°øÇÑ´Ù. À̵éÀº °¢°¢ Áõ°¡¿¬»êÀÚ¿Í °¨¼Ò ¿¬»êÀÚ¶ó°í ºÒ¸®¿î´Ù.
¾ö°ÝÈ÷ ¸»ÇÏÀÚ¸é a++°ú ++a´Â »ç¿ëµÇ´Â Äڵ忡 µû¶ó¼ ´Ù¸¥ °á°ú¸¦ º¸¿©ÁÙ ¼öµµ Àִµ¥, ÀÌ´Â ³ªÁß¿¡ ¾ð±ÞÇϵµ·Ï ÇϰڴÙ. 2.5 ºñÆ® ¿¬»êÀÚ
ÄÄÇ»ÅÍ´Â 0-9¸¦ »ç¿ëÇÏ´Â Àΰ£°ú ´Þ¸® 0°ú 1·ÎµÈ ºñÆ®¸¦ ÀÌ¿ëÇØ¼ °è»êÀ» ÇÑ´Ù´Â °ÍÀº ´Ùµé ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ±×·¯ÇÏ´Ù º¸´Ï ÄÄÇ»Å͸¦ ÀÌ¿ëÇØ¼ Á¤º¸¸¦ Á¦´ë·Î ´Ù·ç±â À§Çؼ´Â ºñÆ®¸¦ Á¦´ë·Î ÀÌÇØÇÏ°í ´Ù·ç´Â°Ô ¸Å¿ì Áß¿äÇÏ°Ô µÈ´Ù. ºñÆ® ¿¬»êÀÚ´Â ºñÆ®¸¦ ´Ù·ç±â À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëÇÑ´Ù.
¿ì¸®°¡ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â x86ÄÄÇ»ÅÍÀÇ °æ¿ì byte¸¦ ±âº»´ÜÀ§·Î »ç¿ëÇÏ°Ô µÈ´Ù. ¶§¹®¿¡ ºñÆ®¿¬»êÀÚ¸¦ ÅëÇØ¼ ºñÆ®¿¬»êÀ» ÇÒ ¶§¿¡µµ byte´ÜÀ§·Î ¿¬»êÇÏ°Ô µÈ´Ù. C´Â ´ÙÀ½°ú °°Àº ºñÆ®¿¬»êÀÚ¸¦ ÁغñÇϰí ÀÖ´Ù.
& ¿¬»êÀÚ´Â °£´ÜÇÏ´Ù. ½ÊÁø¼ö 10¿Í 14°¡ ÀÖÀ»°æ¿ì ÀÌ µÎ ¼ö¸¦ & ¿¬»êÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù. |¿¬»êÀº ±»ÀÌ ¼³¸íÇÏÁö ¾Êµµ·Ï ÇϰڴÙ. 10 00000000 00000000 00000000 00001010
14 00000000 00000000 00000000 00001110
--------------------------------------------
00000000 00000000 00000000 00001010 10
^´Â µÑÁß Çϳª¸¸ ÂüÀÌ¿©¾ß ÂüÀ̵ȴÙ.
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 ¿¬»êÀÚÀÇ »ç¿ë
´ÙÀ½Àº Áö±Ý±îÁö ¹è¿î ¿¬»êÀÚ¸¦ Ȱ¿ëÇÑ °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ ½ÇÇà°á°ú°¡ ¾î¶°ÇÒ·±Áö ¿¹»óÇÏ´Â°Ç ¾î·ÆÁö ¾ÊÀ» °ÍÀÌ´Ù. ÄÄÆÄÀÏ ÈÄ ½ÇÇà½ÃÄѼ ¿¹»óÇÑ °á°ú°¡ ³ª¿Ô´ÂÁö È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ. 2.7 ¿¬»êÀÚ ¿ì¼±¼øÀ§
¿¬»êÀÚ ¿ì¼±¼øÀ§´Â ¿©·¯°³ÀÇ ¿¬»êÀÚ·Î ÀÌ·ç¾îÁø ¶óÀÎ Äڵ尡 ÀÖÀ» °æ¿ì, ¾î¶² ¼ø¼·Î ó¸®ÇÒ °ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§Çؼ »ç¿ëµÈ´Ù. ´ÙÀ½Àº 2+5*4 ÀÇ ¿¬»ê°á°ú¸¦ Ãâ·ÂÇÏ´Â ÄÚµå´Ù. #include <stdio.h> int main() { printf("%d\n", 2 + 5 * 4); }¾ð¶æ »õ°¢Çϱ⿡ 28À̶ó´Â °á°ú°¡ ³ª¿Ã °Å¶ó°í ¿¹»óÇÒ ¼ö ÀÖÁö¸¸, C´Â ³ª¸§´ë·ÎÀÇ ¿¬»êÀÚ ¿ì¼±¼øÀ§¿¡ µû¶ó¼ *¿¬»êÀ» +¿¬»êº¸´Ù ¸ÕÀúÇÏ°Ô µÈ´Ù. ±×·¡¼ 22¶ó´Â °á°ú°¡ ³ª¿À°Ô µÈ´Ù. Áï À§ÀÇ ÄÚµåÀÇ °æ¿ì C´Â ((5*4) + 2)·Î ÇØ¼®Çؼ °è»êÀ» ÇÑ´Ù. ´«Ä¡Ã«°ÚÁö¸¸ ¿¬»ê¼øÀ§¸¦ ¹«½ÃÇϰųª À߸ø ÀÌÇØÇÒ °æ¿ì ÀüÇô ¾û¶×ÇÑ À߸øµÈ ÇÁ·Î±×·¥À» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.
´ÙÀ½Àº C¿¡¼ Àû¿ëµÇ´Â ¿¬»êÀÚ ¿ì¼±¼øÀ§´Ù. Âü°í·Î °áÇÕ¼ºÀº ¿ì¼±¼øÀ§°¡ °°Àº ¿¬»êÀÚµéÀÌ ¿©·µÀÖÀ» °æ¿ì ¾î´À¹æÇâÀ¸·Î ó¸®ÇÒ °ÇÁö¸¦ °áÁ¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù. ÁÂ->¿ì´Â ¿ÞÂÊ¿¡¼ ¸ÕÀú, ¿ì->Á´ ¿À¸¥ÂÊ¿¡¼ ¸ÕÀú °è»êÇÑ´Ù´Â °É ÀǹÌÇÑ´Ù.
À§ÀÇ ¿ì¼±¼øÀ§¸¦ ÀÌÇØÇß´Ù¸é, ¾Æ·¡ÀÇ Á» º¹ÀâÇØ º¸ÀÌ´Â Äڵ尡 ¾î¶»°Ô °è»êµÉÁö ¿¹»óÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. 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ÀåÀ» Àо±â ¹Ù¶õ´Ù.
¿©±â¿¡¼ 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°³ ¸¸ÅÀÌ º¹»çµÇ¾î¼ µé¾î°£´Ù. ¹Ý¸é ÇÔ¼ö´Â ÇϳªÀÇ ¿øº»Äڵ尡 Á¸ÀçÇϰí, ÇÊ¿äÇÒ¶§ ¸¶´Ù È£ÃâÇØ¼ ½ÇÇà½ÃŰ´Â ¹æ¹ýÀ» »ç¿ëÇÑ´Ù.
¿©±â¿¡¼ ´ÙÀ½°ú °°Àº Â÷ÀÌÁ¡ÀÌ »ý±èÀ» ¾Ë ¼ö ÀÖ´Ù.
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À» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|