¹®¼­ À§Ä¡: ùȭ¸é(Home) ) °­Á ) C¾ð¾î ÀÚ·á ) KnR2 ·¹ÆÛ·±½º

ùȭ¸éÀ¸·Î À§ÀÇ Â÷¸²À¸·Î À̵¿ ÀÌÀü ¹®¼­ÆÄÀÏ Àб⠵ÚÀÇ ¹®¼­ÆÄÀÏ Àбâ ÀÌ ¹®¼­ÀÇ Ã¹ ÁÙ·Î °¡±â

K&R2 Reference Manual ¾Ë¸²
The C Programming Language - 2nd Ed ÀÇ ºÎ·ÏÀ¸·Î ÷ºÎµÇ¾î ÀÖ´Â Reference Manual ÀÇ ¹ø¿ªº»ÀÔ´Ï´Ù.
K&R2 ³ª White Book À¸·Î ºÒ¸®´Â The C Programming Language - 2nd Ed ´Â C ¾ð¾îÀÇ °í¾ÈÀÚÀÎ Dennis Ritchie ¿Í Brian Kernighan ÀÌ ÁöÀº Ã¥À¸·Î »ó´çÈ÷ ÀûÀº ºÐ·®ÀÌÁö¸¸, ±× ³»¿ëÀ» ¸ðµÎ ¼ÒÈ­ÇØ ³½´Ù¸é ¸¹Àº °ÍµéÀ» ¾òÀ» ¼ö Àִ åÀÔ´Ï´Ù (ÈçÈ÷µé, "C ¾ð¾îÀÇ ±³°ú¼­" ¶ó°í ÇÏÁÒ).
  ƯÈ÷, ºÎ·ÏÀ¸·Î ÀÖ´Â Reference Manual (±»ÀÌ ¿ì¸®¸»·Î ÇÏÀÚ¸é, "ÂüÁ¶ ¸Þ´º¾ó") Àº ÀúÀÚ°¡ C ¾ð¾îÀÇ 89³â Ç¥ÁØ¾È (C89) ÀÇ ÃÊ¾È (draft) À» ±âÃÊ·Î ÀÛ¼ºÇÑ °ÍÀ¸·Î¼­ Ç¥ÁؾÈÀÇ ¿ä¾àº»À̶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. Âü°í·Î ¼³¸íÇÏÀÚ¸é, C89 ´Â K&R1 (The C Programming Language - 1st Ed) ÀÇ Reference Manual À» Base Document ·Î »ï°í ÀÖ½À´Ï´Ù.
K&R2 ÀÇ Reference Manual ÀÌ Ç¥ÁؾÈÀÇ ¿ä¾àº»À̶ó ÇÏ¿©, ¸¶Ä¡ Ç¥ÁؾÈÀÎ µí Âø°¢ÇÏ´Â ºÐµéÀÌ ¸¹½À´Ï´Ù. Àý´ë·Î K&R2 Reference Manual Àº Ç¥ÁØ¾È ÀÚü°¡ ¾Æ´Õ´Ï´Ù. ½ÇÁ¦ Ç¥ÁؾȺ¸´Ù ºÐ·®¸é¿¡¼­µµ ÈξÀ ÀûÀ» »Ó´õ·¯ (K&R2 RM - 68 pages, C89 - 219 pages, C99 - 555 pages) ³»¿ë¸é¿¡¼­µµ Ç¥Áؾȸ¸Å­ ºÐ¸íÇÏÁöµµ ¾Ê½À´Ï´Ù. ´Ù¸¸ Ç¥ÁØ C ¾ð¾î¸¦ »ç¿ë¸¸ ÇÏ´Â »ç¶÷ ÀÔÀå¿¡¼­¶ó¸é ÀÌ Reference Manual ÀÌ C ¾ð¾îÀÇ ÀÌÇØ¿Í ½Ç·ÂÇâ»ó¿¡ »ó´çÇÑ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù.
ÀÌ ¹ø¿ª¹®Àº ¿ø·¡ ÀúÀÛÀÚ¿ÍÀÇ ÇùÀÇ ¾øÀÌ, ¿À·ÎÁö C ¾ð¾î¸¦ »ç¶ûÇÏ´Â ºÐµé¿¡°Ô Á¤º¸¸¦ Á¦°øÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î Á¦°øµÇ°í ÀÖ½À´Ï´Ù. Àú´Â ÀÌ ¹ø¿ª¹®¿¡ ´ëÇØ¼­ Àý´ë ÀúÀÛ±ÇÀ» ÁÖÀåÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, ÀÌ ¹ø¿ª¹®ÀÇ ³»¿ë¿¡´Â Á¦°¡ ÀÛ¼ºÇØ ³ÖÀº ÁÖ(ñÉ)°¡ µé¾î°¡ ÀÖÀ¸¸ç, ¹ø¿ª¹®ÀÇ ³»¿ë ¶ÇÇÑ ¼ö½Ã·Î È®ÀÎÇÏ°í ¼öÁ¤ÇÏ´Â ÀÛ¾÷ÀÌ ÀÌ·ç¾î Áö°í ÀÖ½À´Ï´Ù. »çÈÄ ¼­ºñ½º(?)¸¦ À§ÇØ ÀÌ ¹ø¿ª¹®À» ÀÚ½ÅÀÇ È¨ÆäÀÌÁö³ª ´Ù¸¥ °÷¿¡¼­ Á¦°øÇÒ ¶§¿¡´Â ¹Ýµå½Ã Á¦ ȨÆäÀÌÁöÀÇ ÁÖ¼Ò¸¦ ÷ºÎÇØ Áֽñ⠹ٶø´Ï´Ù.
ÀÌ ¹ø¿ª¹®°ú °ü·ÃµÈ ¾î¶°ÇÑ Áú¹®, Á¦¾Èµµ ȯ¿µÇÕ´Ï´Ù. Áú¹®À̳ª Á¦¾ÈÀÌ ÀÖÀ¸½Å ºÐµéÀº ¸ÞÀÏÀ̳ª °Ô½ÃÆÇÀ» ÀÌ¿ëÇØ Áֽñ⠹ٶø´Ï´Ù.

K&R2 Reference Manual
ÃÖ±Ù ¼öÁ¤ÀÏÀº 2000³â 12¿ù 8ÀÏ ÀÔ´Ï´Ù
      A0. ¹ø¿ª¹®À» ÀбâÀü¿¡ Çʵ¶
    A1. ¼Ò°³ (Introduction)
    A2. ¾îÈÖÀû ±ÔÁ¤ (Lexical Convention)
          A2.1 ÅäÅ« (Token)
          A2.2 ÁÖ¼® (Comment)
          A2.3 ¸íĪ (Identifier)
          A2.4 Ű¿öµå (Keyword)
          A2.5 »ó¼ö (Constant)
                  A2.5.1 Á¤¼ö»ó¼ö (Integer Constant)
                  A2.5.2 ¹®ÀÚ»ó¼ö (Character Constant)
                  A2.5.3 ºÎµ¿»ó¼ö (Floating Constant)
                  A2.5.4 ¿­°Å»ó¼ö (Enumeration Constant)
          A2.6 ¹®ÀÚ¿­ (String Literal)
    A3. ±¸¹®Ç¥±â (Syntax Notation)
    A4. ¸íĪÀÇ ÀÇ¹Ì (Meaning of Identifier)
          A4.1 ±â¾ïºÎ·ù (Storage Class)
          A4.2 ±âº»Çü (Basic Type)
          A4.3 À¯µµÇü (Derived Type)
          A4.4 ÇüÇÑÁ¤¾î (Type Qualifier)
    A5. ´ë»óü¿Í Áº¯°ª (Object and Lvalue)
    A6. º¯È¯ (Conversion)
          A6.1 Á¤¼öÁø±Þ (Integral Promotion)
          A6.2 Á¤¼öº¯È¯ (Integral Conversion)
          A6.3 Á¤¼ö¿Í ºÎµ¿¼Ò¼ö (Integer and Floating)
          A6.4 ºÎµ¿Çü (Floating Type)
          A6.5 »ê¼úº¯È¯ (Arithmetic Conversion)
          A6.6 Æ÷ÀÎÅÍ¿Í Á¤¼ö (Pointer and Integer)
          A6.7 Void
          A6.8 void Çü Æ÷ÀÎÅÍ (Pointer to Void)
    A7. ¼ö½Ä (Expression)
          A7.1 Æ÷ÀÎÅÍ »ý¼º (Pointer Generation)
          A7.2 ±âº»¼ö½Ä (Primary Expression)
          A7.3 Á¢¹Ì¼ö½Ä (Postfix Expression)
                  A7.3.1 ¹è¿­ÂüÁ¶ (Array Reference)
                  A7.3.2 ÇÔ¼öÈ£Ãâ (Function Call)
                  A7.3.3 ±¸Á¶Ã¼ ÂüÁ¶ (Structure Reference)
                  A7.3.4 Á¢¹ÌÁõ°¡ (Postfix Incrementation)
          A7.4 ´ÜÇ׿¬»êÀÚ (Unary Operator)
                  A7.4.1 Á¢µÎ Áõ°¡¿¬»êÀÚ (Prefix Incrementation Operator)
                  A7.4.2 ¹øÁö¿¬»êÀÚ (Address Operator)
                  A7.4.3 °£Á¢ÁöÁ¤ ¿¬»êÀÚ (Indirection Operator)
                  A7.4.4 ´ÜÇ× Ç÷¯½º ¿¬»êÀÚ (Unary Plus Operator)
                  A7.4.5 ´ÜÇ× ¸¶À̳ʽº ¿¬»êÀÚ (Unary Minus Operator)
                  A7.4.6 1ÀÇ º¸¼ö ¿¬»êÀÚ (One's Complement Operator)
                  A7.4.7 ³í¸® ºÎÁ¤ ¿¬»êÀÚ (Logical Negation Operator)
                  A7.4.8 sizeof ¿¬»êÀÚ (Sizeof Operator)
          A7.5 ij½ºÆ® (Cast)
          A7.6 °ö¼À¿¬»êÀÚ (Multiplicative Operator)
          A7.7 µ¡¼À¿¬»êÀÚ (Additive Operator)
          A7.8 ½¬ÇÁÆ® ¿¬»êÀÚ (Shift Operator)
          A7.9 °ü°è¿¬»êÀÚ (Relational Operator)
          A7.10 »óµî¿¬»êÀÚ (Equality Operator)
          A7.11 ºñÆ® AND ¿¬»êÀÚ (Bitwise AND Operator)
          A7.12 ºñÆ® XOR ¿¬»êÀÚ (Bitwise Exclusive OR Operator)
          A7.13 ºñÆ® OR ¿¬»êÀÚ (Bitwise Inclusive OR Operator)
          A7.14 ³í¸® AND ¿¬»êÀÚ (Logical AND Operator)
          A7.15 ³í¸® OR ¿¬»êÀÚ (Logical OR Operator)
          A7.16 Á¶°Ç¿¬»êÀÚ (Conditional Operator)
          A7.17 ´ëÀÔ¼ö½Ä (Assignment Expression)
          A7.18 ½°Ç¥¿¬»êÀÚ (Comma Operator)
          A7.19 »ó¼ö¼ö½Ä (Constant Expression)
    A8. ¼±¾ð (Declaration)
          A8.1 ±â¾ïºÎ·ù ÁöÁ¤ÀÚ (Storage Class Specifier)
          A8.2 ÇüÁöÁ¤ÀÚ (Type Qualifier)
          A8.3 ±¸Á¶Ã¼¿Í °ø¿ëü ¼±¾ð (Structure and Union Declarations)
          A8.4 ¿­°Å (Enumeration)
          A8.5 ¼±¾ðÀÚ (Declarator)
          A8.6 ¼±¾ðÀÚÀÇ ÀÇ¹Ì (Meaning of Declarator)
                  A8.6.1 Æ÷ÀÎÅÍ ¼±¾ðÀÚ (Pointer Declarator)
                  A8.6.2 ¹è¿­ ¼±¾ðÀÚ (Array Declarator)
                  A8.6.3 ÇÔ¼ö ¼±¾ðÀÚ (Function Declarator)
          A8.7 ÃʱâÈ­ (Initialization)
          A8.8 µ¥ÀÌÅÍÇü¸í (Type Name)
          A8.9 Typedef
          A8.10 µ¥ÀÌÅÍÇü ÀÏÄ¡ (Type Equivalence)
    A9. ¹®Àå (Statement)
          A9.1 ¶óº§¹® (Labeled Statement)
          A9.2 ¼ö½Ä¹® (Expression Statement)
          A9.3 º¹¹® (Compound Statement)
          A9.4 ¼±Åù® (Selection Statement)
          A9.5 ¼øÈ¯¹® (Iteration Statement)
          A9.6 Á¡ÇÁ¹® (Jump Statement)
    A10. ¿ÜºÎ¼±¾ð (External Declaration)
          A10.1 ÇÔ¼öÁ¤ÀÇ (Function Definition)
          A10.2 ¿ÜºÎ¼±¾ð (External Declaration)
    A11. Åë¿ë¹üÀ§¿Í ¿¬°á (Scope and Linkage)
          A11.1 ¾îÈÖÀû Åë¿ë¹üÀ§ (Lexical Scope)
          A11.2 ¿¬°á (Linkage)
    A12. Àü󸮱â (Preprocessor)
          A12.1 »ïÁßÀÚ (Trigraph Sequence)
          A12.2 ¶óÀÎ ¿¬°á (Line Splicing)
          A12.3 ¸ÅÅ©·Î Á¤ÀÇ¿Í È®Àå (Macro Definition and Expansion)
          A12.4 ÆÄÀÏ÷°¡ (File Inclusion)
          A12.5 Á¶°ÇºÎ ÄÄÆÄÀÏ (Conditional Compilation)
          A12.6 ¶óÀÎÁ¦¾î (Line Control)
          A12.7 ¿¡·¯»ý¼º (Error Generation)
          A12.8 Pragma
          A12.9 ³ÎÁö½ÃÀÚ (Null Directive)
          A12.10 ±âÁ¤ÀÇ ¸ÅÅ©·Î (Predefined Name)
    A13. ¹®¹ý (Grammar)
PDF ¹öÁ¯ ´Ù¿î¹Þ±â: knr2rfm.pdf (735KB)