Ã¥¼Ò°³
C °³¹ß°úÁ¤¿¡¼ÀÇ ±Ùº»ÀûÀÎ Áú¹®¿¡ ´ëÇÑ ÇØ´ä"ÀÌ Çö»óÀº ¿Ö ÀϾ±î?", "¿Ö ´À·ÁÁöÁö?", "¿Ö °ªÀÌ Á¦´ë·Î ¾È ³ª¿Í?"½Ç¹« °³¹ßÀÚ¶ó¸é À§¿Í °°Àº Áú¹®µéÀº Çʼö¶ó°í ÇÒ¸¸Å ´ç¿¬ÇÑ '°³¼±ÀÇ °è±â'°¡ µÇ´Âµ¥¿ä.º» Ã¥Àº C °³¹ß °úÁ¤¿¡ ÀÖ¾î ÀÌ·¯ÇÑ ±Ùº»ÀûÀÎ Áú¹®µé¿¡ ´ëÇÑ µµ¿òÀÌ µÉ ¸¸ÇÑ ³»¿ëµéÀ» ´ã°í ÀÖ½À´Ï´Ù.´õºÒ¾î ÄÄÇ»ÅÍ°øÇаú Àü°øÀÇ ÇÁ·Î±×·¥ÀÇ ¿ø¸®¸¦ °£·«ÇÏ°Ô³ª¸¶ Á¤¸®ÇÏ°í ¾ó°³¸¦ ´Ù½Ã ²ç´Â µ¥¿¡ ÁßÁ¡À» µÐ º» Ã¥À» ÅëÇÏ¿©,1. Àü°øÀÚµéÀº Àü°ø Áö½ÄÀ» ´Ù½Ã È®ÀÎÇÏ´Â Â÷¿ø¿¡¼,2. ºñÀü°øÀÚµéÀº ÄÄÇ»ÅÍ °ü·Ã ÀÌ·ÐÀ» ¾î·ÆÁö ¾Ê°Ô ÀÌÇØÇÏ°í,3. Àü°ø ÇкλýµéÀ̶ó¸é "³ªÁß¿¡ ºñ·Î¼Ò ÀÌÇصȴÙ" ´Â ¼±¹èµé Á¶¾ðÀÇ Àǹ̸¦ ª°Ô³ª¸¶ ¸Àº¸¾ÒÀ¸¸é ÇÕ´Ï´Ù.ºÎµð, °úµµ¸¦ ÀÌ¿ëÇؼ ¼Ò¸¦ Àâ´Â ¿ì¸¦ ¹üÇÏÁö ¾Ê°Ô µµ¿ÍÁÙ ÀÛÀº °¡À̵尡 µÇ±æ ¹Ù¶ø´Ï´Ù.
ÀúÀÚ¼Ò°³
¡®1µµ ¸ð¸£°í¡¯ ÇÁ·Î±×·¡¹Ö¿¡ ºüÁ³´ø ²¿²¿¸¶. Á¶±â ±³À° ´ö¿¡ À¯¼ö ´ëȸ ¼ö»ó ÈÄ ÄÄÇ»ÅÍ°øÇÐ Àü°ø. º´¿ªÆ¯·Ê ½ÃÀý ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö/¾Ë°í¸®Áò°ú ù ¿¬À» ¸Î°í ÀÌÂÊ ±æ¿¡ º»°Ý ÀÔ¼º. ÀÌÈÄ µ¥ÀÌÅͺ£À̽º °ü¸® ½Ã½ºÅÛ °³¹ß ¹× DAUM °Ë»ö¿£Áø °³¹ßÀ» °ÅÃÄ, Áö±ÝÀº Ä«Ä«¿À ¸ðºô¸®Æ¼¿¡¼ ³»ºñ°ÔÀ̼ǰú ¾¾¸§ Áß. ¾îµð °¡¼ ¡®±æµµ ¸ð¸¥´Ü¡¯ ¼Ò¸® ¾È µè°Ô ÇÏ·Á ºÎ´øÈ÷ ³ë·Â ÁßÀÎ °æ·Î°Ë»ö ¾Ë°í¸®Áò ¿¬±¸ÀÚ.
¸ñÂ÷
¸Ó¸®¸»ÀÌ Ã¥ÀÇ »ç¿ë¹ýºÎ·Ï ´Ù¿î·ÎµåChapter 1. ¼ö¿Í ¿¬»ê1.1 ½Ç¼öÇü ÀÚ·á »ç¿ëÀÇ À§Ç輺 01 ½Ç¼öÇü ÀÚ·áÀÇ ÀúÀå ¹æ½Ä 02 ºÎµ¿¼Ò¼öÁ¡°ú °íÁ¤¼Ò¼öÁ¡ÀÇ ºñ±³ 03 ½Ç¼öÇü ÀÚ·áÀÇ ÁÖÀÇÁ¡1.2 Çü º¯È¯ ½Ã ÁÖÀÇÁ¡1.3 ¹«ºÎÈ£Çü(Unsigned Type) »ç¿ë ½Ã ÁÖÀÇÁ¡ 01 º¸¼ö Ç¥Çö¹ý 02 ¹«ºÎÈ£Çü »ç¿ë ½Ã ¹®Á¦Á¡1.4 ºñÆ® ¿¬»ê ½Ã ÁÖÀÇÁ¡ 01 À̵¿(Shift) ¿¬»ê 02 »ê¼ú À̵¿(Arithmetic Shift)°ú ³í¸® À̵¿(Logical Shift) 03 À̵¿ ¿¬»êÀÇ ÀåÁ¡°ú ÁÖÀÇÁ¡1.5 º¯¼öÀÇ ¹üÀ§ 01 ¹®ÀÚÇüÀÇ overflow 02 ½Ç¼öÇüÀÇ overflow1.6 ³ª´°¼ÀÀÇ ÁÖÀÇ »çÇ× 01 0À¸·Î ³ª´©±â(Division by Zero) 02 0.0À¸·Î ³ª´©±â1.7 Áõ°¨ ¿¬»êÀÚ »ç¿ë ½Ã ÁÖÀÇ »çÇ× 01 ÀÏ¹Ý µ¡¼À ¿¬»ê °úÁ¤ 02 Áõ°¨ ¿¬»êÀÚ1.8 ³¼ö´Â ³¼ö°¡ ¾Æ´Ï´Ù 01 ³¼öÀÇ »ý¼º 02 ³¼öÇ¥ 03 ³¼öÀÇ È°¿ëChapter 2. ÇÔ¼ö2.1 ÇÔ¼öÀÇ ¹Ýȯ°ª 01 ÀÎÀÚ¸¦ ÅëÇÑ ½ÇÇà Á¤º¸ÀÇ ÀÔ·Â 02 ÇÔ¼öÀÇ ¸®ÅÏ°ª Àç°í2.2 ¹Ýȯ°ªÀ» È°¿ëÇÏÀÚ 01 ¹Ýȯ°ª È°¿ë ¿¹Á¦2.3 ÇÁ·Î±×·¥ ¼öÇà ½Ã ¸Þ¸ð¸®ÀÇ ±¸Á¶ 01 ¸Þ¸ð¸® ±¸Á¶ 02 º¯¼öÀÇ Á¾·ù2.4 Call by Value vs Call by Reference 01 ÇÔ¼ö ÀÎÀÚÀÇ Àü´Þ ¹æ¹ý 02 ÇǺ¸³ªÄ¡(Fibonacci) 03 ÇϳëÀÌ(Fibonacci) ž2.5 x86 ÇÔ¼ö È£Ãâ ±Ô¾à(ºñÇ¥ÁØ) 01 Cdecl(C declaration) 02 Stdcall 03 FastcallChapter 3. Æ÷ÀÎÅÍ3.1 ÇÔ¼ö·ÎÀÇ ÀÎÀÚ Àü´Þ3.2 ¹è¿°ú Æ÷ÀÎÅÍÀÇ °ü°è 01 ¹è¿ÀÇ ±¸Á¶ 02 ¹®ÀÚ¿ 03 Æ÷ÀÎÅÍ¿Í ¹è¿ÀÇ Â÷ÀÌ 04 Strcpy( ) ÇÔ¼ö3.3 ´ÙÂ÷¿ø ¹è¿°ú Æ÷ÀÎÅÍ 01 ¹è¿ÀÇ ¼±Çü¼º 02 Æ÷ÀÎÅÍ ¹è¿3.4 ÇÔ¼ö Æ÷ÀÎÅÍ 01 ÀÎÀÚ°¡ ¾ø´Â ÇÔ¼ö Æ÷ÀÎÅÍ 02 ÀÎÀÚ°¡ ÀÖ´Â ÇÔ¼ö Æ÷ÀÎÅÍ 03 qsort( ) ÇÔ¼ö3.5 Æ÷ÀÎÅÍ ½±°Ô »ç¿ëÇϱâ3.6 À߸øµÈ Æ÷ÀÎÅÍÀÇ »ç¿ë 01 Çã»ó Æ÷ÀÎÅÍ(Darling Pointer) 02 ¿ÍÀϵå Æ÷ÀÎÅÍ(Wild Pointer) 03 Çã»ó Æ÷ÀÎÅÍ ¹æ¾îChapter 4. ÀÔÃâ·Â(I/O)4.1 ÄÄÇ»ÅÍÀÇ I/O ó¸® °úÁ¤4.2 ÄÄÇ»ÅÍ ±¸µ¿ ȯ°æ¿¡¼ ÀÚ·áÇüÀÇ ±â·Ï ¹æ½Ä 01 ¿£µð¾ð(Endian) 02 °³Çà ¹®ÀÚ(ÇÑ ÁÙ ¶ç¾î¾²±â)4.3 ¿©·¯ °¡Áö ÀÔÃâ·Â ȯ°æ 01 Ç¥ÁØ ÀÔÃâ·Â 02 Åë½Å ³×Æ®¿öÅ© I/O4.4 ÅؽºÆ® ¸ðµå¿Í ¹ÙÀ̳ʸ® ¸ðµå4.5 ÆÄÀÏ ÀÔÃâ·Â ÇÁ·Î±×·¥ ÀÛ¼º ½Ã ÀÚÁÖÇÏ´Â ½Ç¼ö4.6 ÆÄÀÏ ÀÔÃâ·Â ¿¡·¯ Çڵ鸵 ¹æ¹ý4.7 I/O ¼º´É °³¼± ¹æ¹ýChapter 5. ±âŸ ÇÁ·Î±×·¡¹Ö ÆÁ5.1 ¹Ýº¹¹®ÀÇ Á¾·ù 01 ¹Ýº¹¹®ÀÇ Á¾·ù 02 ¹Ýº¹¹® »ç¿ë ½Ã ÁÖÀÇÁ¡ 03 ¹Ýº¹¹®ÀÇ ¼º´É °³¼± 04 goto ¹® È°¿ë5.2 ¸ÅÅ©·Î »ç¿ë »óÀÇ ÁÖÀÇÁ¡ 01 ¸ÅÅ©·Î »ç¿ë ½Ã ÁÖÀÇÁ¡ 02 ³»Àå ¸ÅÅ©·Î5.3 if ¹® »ç¿ë ½Ã ÁÖÀÇÁ¡ 01 if ¹®ÀÇ Á¶°Ç½Ä ÆÇ´Ü ¼ø¼ 02 if ¹®ÀÇ Áßø5.4 ¸Þ¸ð¸® Æеù(Padding) 01 ÆеùÀ̶õ? 02 ÆеùÀ» »ç¿ëÇÏ´Â ÀÌÀ¯5.5 µð¹ö±ë ÆÁ 01 debugbreak( ) ÇÔ¼öºÎ·Ï - ¾Æ½ºÅ°ÄÚµå Ç¥ - À¯´ÏÄÚµå Çѱ۸ðÀ½ - ã¾Æº¸±â