C ªº «e ¸m ³B ²z ¾¹

l         «e ¸m ³B ²z ¾¹ (preprocessor)

§Ú ­Ì ¦b ¼g µ{ ¦¡ ªº ®É ­Ô , ±` ±` ·| ¸I ¨ì ¬Y ¨Ç ¸ê ®Æ ­« ÂÐ ¨Ï ¥Î ©Î ¬O ¬Y ¨Ç µ{ ¦¡ ¤ù ¬q ¦] ¯S ©w ªº ±ø ¥ó ¤U ¶· ©ñ ±ó , ¦p ªG ¥H ¥¿ ±` ªº ¤è ¦¡ ¨Ó ¼g §@ µ{ ¦¡ , ¥i ¯à ·| ¼W ¥[ µL ¿× ªº µ{ ¦¡ ¤ù ¬q , ¨Ï ªº µ{ ¦¡ ²Â ­« ¤£ ³ô , ¦ý ¦p ªG ¯à ¦n ¦n ¹B ¥Î C »y ¨¥ ©Ò ´£ ¨Ñ ªº «e ¸m ³B ²z ¾¹ , «h ¤W ­z ªº ª¬ ªp ±N §ï µ½ ³\ ¦h . ³o ­Ó ¥\ ¯à ¨Ã «D C »y ¨¥ ¥» ¨­ ªº ®æ ¦¡ , ¦ý ¤´ ¬° ½s Ķ µ{ ¦¡ ©Ò ¯à ±µ ¨ü . ¹ï «e ¸m ³B ²z ¾¹ ªº ¸Ñ ÄÀ , ¦p ¹Ï ©Ò ¥Ü , ¦] ¬° ¥¦ ¬O ¦b µ{ ¦¡ ½s Ķ ¤§ «e °õ ¦æ , ©Ò ¥H ÅU ¦W «ä ¸q ºÙ ¤§ «e ¸m ³B ²z .

  

l          «e ¸m ³B ²z ¾¹ ®æ ¦¡ »P ºØ Ãþ

<1> «e ¸m ³B ²z ¾¹ ªº ®æ ¦¡ ¦p ¤U¡G

#«e¸m³B²z¾¹¦WºÙ    ³B²z¤º®e
 

<2> «e ¸m ³B ²z ¾¹ ±Ô ­z ¥i ¼g ¦b µ{ ¦¡ ¤¤ ªº ¥ô ¦ó ¦a ¤è .
<3>
«e ¸m ³B ²z ¾¹ ªº ºØ Ãþ ¦p ¤U ªí ¤@ ©Ò ¦C , ¨ä ¦U ºØ «e ¸m ³B ²z ¾¹ ¤§ ¨Ï ¥Î ¤è ªk , §Ú ­Ì ±N ¦b ¥H ¤U ªº ³¹ ¸` ¤¤ ¤@ ¤@ ¤¶ ²Ð .

 

¥\ ¯à

   «e¸m³B²z¾¹¤§±Ô­z    

Àɮתº§t¤J

#include

¦r¦êªº¸m´«/¥¨¶°©w¸q

#define / #undef

±ø ¥ó ½s Ķ

#if .... #elif .... #else .... #endif

#ifdef (#ifndef) .... #else .... #endif

l        #include¡]ÀÉ ®× ªº §t ¤J¡^

¦¹ ±Ô ­z ¤§ ¥D ­n ¥Ø ªº ¬O Åý §Ú ­Ì ±N ¬Y ­Ó µ{ ¦¡ ÀÉ ©Î ¼Ð ÀY ÀÉ ¥] ¬A ¦b ¥Ø «e ªº µ{ ¦¡ ¤º , ¨Ï ¥Ø «e ªº µ{ ¦¡ ¥i ¤Þ ¥Î ¸Ó ÀÉ ¤º ªº ¸ê ®Æ ©Î µ{ ¦¡ . »y ªk ¦p ¤U :

 

     <1> #include "ÀɮצWºÙ" : ¦¹ªí¥Ü¨t²Î±N·|¨ì¥Ø«eªº¥Ø¿ý (¸ô®| )
                               ¤U´M§ä©Ò«ü©wªºÀÉ®× ,¦pªG§ä¤£¨ì ,«h
                               ·|¥h¨t²Î³]©wªº¥Ø¿ý©³¤U´M§ä .
 
     <2> #include <ÀɮצWºÙ> : ¦¹ªí¥Ü¨t²Î±N·|¨ì¨t²Î³]©wªº¥Ø¿ý©³¤U
                               ´M§ä©Ò«ü©wªºÀÉ®× .
 
 
Example:
 
#include < stdio.h >
  #include "def.h"
  
main()
  {
            printf("PI=%2.5f\n",PI);
            printf("a+b=%d\n",a+b);
 }
 
 
-- def.h ªºÀɮפº®e --
 
         #define PI  3.14159
         #define a   10
         #define b   20
   ----------------------
 
      °õ¦æµ²ªG :
 
             PI=3.14159
             a+b=30

l        #define¡]¦r ¦ê ªº ¸m ´« / ¥¨ ¶° ©w ¸q¡^»P #undef

<1> ¥¨ ¶° #define ªº ¨Ï ¥Î :

¨ä ¥D ­n ¤§ ¥\ ¯à ¬O ¥H ² ³æ ªº ¦W ºÙ ¨ú ¥N ¬Y ¨Ç ¯S ©w ªº ±` ¼Æ ©Î ¦r ¦ê , ¨ç ¼Æ , «Ø ¥ß §ó ² ³æ §ó ©ö À´ ªº µ{ ¦¡ . »y ªk ¦p ¤U :

               #define ¥¨¶°¦WºÙ ±`¼Æ©Î¨ç¦¡©Î¦r¦ê
 

<2> ¥¨ ¶° #undef ªº ¨Ï ¥Î :

¨ä ¥D ­n ¤§ ¥\ ¯à «h ¬O ¨ú ®ø ³Ì ±µ ªñ ¤§ #define ©Ò ©w ¸q ªº ±Ô ­z .

 

#undef  ¥¨¶°¦WºÙ
 
Example1:
 
#include < stdio.h >
#define PI 3.14159
         main()
         {
           printf("PI=%2.5f",PI);
         }
 
 
°õ¦æµ²ªG :
 
             PI=3.14159
Example2 :
 
          #include < stdio.h >
          #define add(a,b) a+b
          
 
void main(void)
          {
             int i,j,k;
             i=2;
             j=3;
             k=add(i,j);
 
             printf("i+j=%d\n",k);
          }
 
°õ¦æµ²ªG :
 
              i+j=5
 
Example3:
 
#include < stdio.h >
#define pstring "This is my first C program.\n"
          
 
void main(void)
       {
        printf(pstring,1);
       }
 
 
 
 
 
°õ¦æµ²ªG :
 
      This is my first C program.
Example4 :
 
 #include < stdio.h >
   #define  compare(a,b)      \
            if ( a > b )        \
              printf("a > b");  \
            else                \
              if ( a < b )      \
                printf("a < b");\
              else              \
                printf("a = b");
 
      void main(void)
          {
             int a,b;
             a=5;
             b=10;
             compare(a,b);
          }
 
   °õ¦æµ²ªG :
              a < b
Example5 :
  
 #include < stdio.h >
 #define TURBOC
   
void main(void)
    {
     #ifdef TURBOC
        printf("Borland C compiler.\n");
     #endif
 
     #undef TURBOC
 
     #ifndef TURBOC
         printf("MircoSoft C compiler.\n");
     #endif
    }
 
    °õ¦æµ²ªG :
        Borland C compiler.
MircoSoft C compiler.

l          ±ø ¥ó ¦¡ ªº ½s Ķ

<1> ±ø ¥ó ¦¡ ªº ½s Ķ, ¦¹ ¥Î ªk ªº ³Ì ¤j ¯S ¦â ¦b ©ó ¨ä ±Ô ­z ¤£ ¶È ¥i ¥H ©ñ ¦b µ{ ¦¡ ªº ³» ºÝ , ¥ç ¥i ±N ¨ä ±Ô ­z ©ñ ¸m ©ó µ{ ¦¡ ¤¤ . ¥H ¤U ©Ò ¦C (1) ,(2) ,(3) ¶µ ¬° ±ø ¥ó ¦¡ ½s Ķ ªº ¦¨ ­û .

                    (1) #if ©M #endif
                    (2) #else / #elif
                    (3) #ifdef ©M #ifndef
 

<2> ¥Ñ ¥H ¤W ªº ±Ô ­z , §Ú ­Ì ¤£ Ãø µo ²{ ³o ¨Ç ±ø ¥ó ¦¡ ½s Ķ ªº ¦¨ ­û »P «e ´X ³¹ ±± ¨î ¬y µ{ ©Ò ´£ ¨ì if ... then ... else ªº »y ªk ¤Q ¤À ¬Û ¦ü , ¥B ³s ¨Ï ¥Î ¤è ªk »P ­ì ²z ³£ «D ±` ¬Û ¦ü .

Example1:
 
   #include < stdio.h >
   #define value  99
 
    void main(void)
    {
      #if value < 100
        printf("value < 100");
      #else
        printf("value >= 100");
      #endif
    }
 
  
 
°õ¦æµ²ªG :
 
      value < 100
Example2:
 
      #include < stdio.h >
      #define value  100
        
void main(void)
   {
    #if value < 100
       printf("value < 100");
     #elif value > 100
         printf("value > 100");
     #else
         printf("value = 100");
     #endif
  }
 
 °õ¦æµ²ªG :
 
          value = 100
 

 

¦^¸ê®Æµ²ºc±Ð¾Ç¤jºõ  ¤U¤@³æ¤¸