3.Á¶°ÇºÎ ÄÄÆÄÀÏ

1.#ifdef

Á¶°ÇºÎ ÄÄÆÄÀÏ(Conditional Compile)À̶õ ÄÚµåÀÇ ÄÄÆÄÀÏ ¿©ºÎ¸¦ Á¶°ÇÀÇ ÁøÀ§ ¿©ºÎ¿¡ µû¶ó °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÄÚµåÀÇ Æ÷ÇÔ ¿©ºÎ¸¦ °áÁ¤ÇØ¾ß ÇϹǷΠÄÄÆÄÀÏÇϱâ ÀüÀÎ Àüó¸® ´Ü°è¿¡¼­ ¼öÇàÇÑ´Ù. Á¶°ÇÀº ÁÖ·Î ¸ÅÅ©·Î »ó¼öÀÇ Á¸Àç ¿©ºÎ³ª ¸ÅÅ©·Î°ªÀ¸·Î ÁöÁ¤Çϸç ÄÄÆÄÀÏÇϱâ ÀüÀ̾ º¯¼ö³ª ÇÔ¼ö È£Ãâ¹®Àº »ç¿ëÇÒ ¼ö ¾ø´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

 

#ifdef ¸ÅÅ©·Î¸í

ÄÚµå

#endif

 

#ifdef ´ÙÀ½¿¡ Á¶°ÇÀÌ µÇ´Â ¸ÅÅ©·Î¸íÀ» ¾²°í #endif »çÀÌ¿¡ Á¶°ÇºÎ·Î Æ÷ÇÔÇÒ Äڵ带 ÀÛ¼ºÇÑ´Ù. ¸ÅÅ©·Î°¡ Á¸ÀçÇϸé ÄÚµå´Â Æ÷ÇԵǾî ÄÄÆÄÀÏµÇ¸ç ±×·¸Áö ¾Ê´Ù¸é Àüó¸® °úÁ¤¿¡¼­ »èÁ¦µÇ¾î ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÈ´Ù. #ifdef ~ #endif »çÀÌÀÇ ºí·ÏÀÌ Á¶°ÇºÎ ÄÄÆÄÀÏ ´ë»óÀ̸ç Àü󸮹®À¸·Î ºí·ÏÀÌ ÁöÁ¤µÇ¾î ÀÖÀ¸¹Ç·Î { } °ýÈ£·Î °¨½Ò ÇÊ¿ä´Â ¾ø´Ù.

ÀÌ ±â´ÉÀ» Àß È°¿ëÇϸé ÇѹúÀÇ Äڵ带 Á¶°Ç¿¡ µû¶ó ´Ù¸£°Ô ÄÄÆÄÀÏÇÏ¿© ¾à°£¾¿ ´Ù¸¥ ½ÇÇà ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ¿öµå ÇÁ·Î¼¼¼­´Â ÀϹݿ뿡 ºñÇØ Àü¹®°¡¿ëÀÌ ±â´ÉÀÌ ´õ ¸¹°í °¡°Ýµµ ºñ½Î´Ù. ±â´Éº°·Î ¿©·¯ ¹öÀüÀ» ¹ßÇ¥ÇÏ´Â °¡°Ý Â÷º°È­ Á¤Ã¥Àº ÃÖ´ë ¸ÅÃâ°ú ¼öÀÍÀ» ½ÇÇöÇÏ´Â ¸¶ÄÉÆà ±â¹ýÀ¸·Î ÈçÈ÷ »ç¿ëµÈ´Ù.

ÀÌ °æ¿ì ´ëºÎºÐÀÇ ÄÚµå´Â °øÅëÀûÀÌÁö¸¸ ÀϹݿëÀº Àü¹®°¡ ¹öÀüÀÇ °í±Þ ±â´É ÀϺΰ¡ Á¦¿ÜµÈ´Ù. µÎ ¹öÀüÀÇ Äڵ带 µû·Î À¯ÁöÇÏ´Â °Íº¸´Ù Â÷ÀÌ°¡ ³ª´Â ºÎºÐ¸¸ Á¶°ÇºÎ ÄÄÆÄÀÏÇÏ´Â °ÍÀÌ Äڵ带 À¯Áö, º¸¼öÇϱâ Æí¸®ÇÏ´Ù. Àü¹®°¡¿ë¿¡¸¸ Æ÷ÇԵǴ ÄÚµå´Â ´ÙÀ½ ºí·Ï¾È¿¡ ÀÛ¼ºÇÑ´Ù.

 

#ifdef PROFESSIONAL

°í±Þ ±â´É

#endif

 

°í±Þ ±â´ÉÀ» ÀÌ ºí·Ï¾È¿¡ ÀÛ¼ºÇØ ³õÀ¸¸é PROFESSIONAL ¸ÅÅ©·Î »ó¼ö°¡ Á¤ÀǵǾî ÀÖÀ» ¶§¸¸ ÄÄÆÄÀϵȴÙ. ¼Ò½º ¼±µÎ¿¡ #define PROFESSIONAL ¸ÅÅ©·Î¸¦ ¼±¾ðÇÑ Ã¤ ÄÄÆÄÀÏÇϸé Àü¹®°¡¿ëÀÌ µÇ°í ÀÌ Á¤Àǹ®À» Áö¿ì°Å³ª ÁÖ¼® ó¸®ÇÑ Ã¤·Î ÄÄÆÄÀÏÇϸé ÀϹݿëÀÌ µÈ´Ù. ¸ÅÅ©·Î Á¤Àǹ® Çϳª·Î ÄÄÆÄÀÏÇÒ Äڵ带 °£ÆíÇÏ°Ô ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

¸ÅÅ©·Î Á¤Àǹ®À» ÀÛ¼ºÇÏ´Â °ÍÀÌ ±ÍÂú´Ù¸é ÇÁ·ÎÁ§Æ® ¼³Á¤Ã¢¿¡¼­µµ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÁ§Æ® ±¸¼ºº°·Î ¸ÅÅ©·Î¸¦ µû·Î Á¤ÀÇÇÒ ¼ö ÀÖ°í ¹èÄ¡ ºôµå±îÁö Áö¿øµÇ¾î Àß ±¸¼ºÇØ ³õÀ¸¸é ¿øÅÍÄ¡·Î Àü¹®°¡¿ë/ÀϹݿë, Çѱ¹¾î/¿µ¾î µîÀÇ ¿©·¯ °¡Áö ¹öÀüÀ» ºôµåÇÒ ¼ö ÀÖ´Ù.

#ifndef´Â ¹Ý´ë·Î ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» ¶§¸¸ ºí·Ï ¾ÈÀÇ Äڵ带 ÄÄÆÄÀÏÇÑ´Ù. °¡·É ÀϹݿ뿡¸¸ ÀÛ¼ºµÇ´Â ÄÚµå´Â #ifndef PROFESSIONAL ~ #endif  »çÀÌ¿¡ ÀÛ¼ºÇÑ´Ù. #else ±¸¹®Àº ¹Ý´ëÀÇ Á¶°ÇÀ» ó¸®Çϴµ¥ Á¶°Ç¿¡ µû¶ó ÄÄÆÄÀÏÇÒ Äڵ带 ¼±ÅÃÇÑ´Ù. Àü¹®°¡¿ë°ú ÀϹݿëÀÇ ±â´ÉÀÌ ´Ù¸£´Ù¸é ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.


#ifdef PROFESSIONAL

Àü¹®°¡¿ëÀÇ ÄÚµå

#else

ÀϹݿëÀÇ ÄÚµå

#endif

 

Ç¥ÁØ Çì´õ ÆÄÀϵµ Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ¸¦ Àû±ØÀûÀ¸·Î È°¿ëÇÏ¿© ¿î¿µÃ¼Á¦, À¯´ÏÄÚµå »ç¿ë ¿©ºÎ, µð¹ö±× ¹öÀü µîÀÇ Á¶°Ç¿¡ µû¶ó ÇϳªÀÇ ¼Ò½º·Î ´Ù¸¥ Äڵ带 »ý¼ºÇØ ³½´Ù. Á¶°ÇÀ» ¹Ù²ã °¡¸ç ÄÄÆÄÀÏÇÔÀ¸·Î½á ¿©·¯ °¡Áö ȯ°æ¿¡ µÎ·ç Àû¿ëÇÒ ¼ö ÀÖ´Â À̽ļºÀÌ È®º¸µÈ´Ù.

2.#if

#ifdef´Â ¸ÅÅ©·ÎÀÇ Á¸Àç ¿©ºÎ¸¸À¸·Î Á¶°ÇÀ» ÆÇ´ÜÇϴµ¥ ºñÇØ #if´Â ´õ ´Ù¾çÇÑ Á¶°ÇÀ» Æò°¡ÇÑ´Ù. C ¾ð¾îÀÇ if else Á¶°Ç¹®°ú À¯»çÇÏ¸ç ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

 

#if Á¶°Ç1

ÄÚµå1           // Á¶°Ç1À» ¸¸Á·Çϸé ÄÚµå1À» ÄÄÆÄÀÏ

#elif Á¶°Ç2

ÄÚµå2           // Á¶°Ç 2°¡ ¸¸Á·µÇ¸é ÄÚµå2¸¦ ÄÄÆÄÀÏ

#else

ÄÚµå3           // µÑ ´Ù ¸ÂÁö ¾ÊÀ¸¸é ÄÚµå 3À» ÄÄÆÄÀÏ

#endif

 

#elif¿Í #else´Â ÇÊ¿ä¾øÀ» °æ¿ì »ý·«ÇÒ ¼ö ÀÖÀ¸¸ç #elif´Â ¾ó¸¶µçÁö ¿Ã ¼ö ÀÖ´Ù. Á¶°ÇÀº Àüó¸® °úÁ¤¿¡¼­ ÁøÀ§ ¿©ºÎ¸¦ ÆÇ´ÜÇÒ ¼ö ÀÖ´Â °ÍÀ̾î¾ß Çϴµ¥ º¯¼ö´Â ¾µ ¼ö ¾ø°í ¸ÅÅ©·ÎÀÇ °ªÀ» ÁÖ·Î Æò°¡ÇÑ´Ù. Àüó¸®Áß¿¡µµ º¹ÀâÇÑ Á¶°ÇÀ» Æò°¡ÇÒ ¼ö ÀÖ¾î ¼¶¼¼ÇÑ Á¶°ÇºÎ ÄÄÆÄÀÏ ÁöÁ¤ÀÌ °¡´ÉÇÏ´Ù. Á» º¹ÀâÇÏ°í ¾à°£ÀÇ Á¦ÇÑÀÌ ÀÖÁö¸¸ ¾ð¾îÀÇ Á¶°Ç¹®°ú ±Ùº»ÀûÀÎ ±¸Á¶´Â ºñ½ÁÇÏ´Ù.

 

¡á ¸ÅÅ©·Î°ªÀÇ »óµî, ºñ±³ ¿¬»êÀ» ÇÒ ¼ö ÀÖÀ¸¸ç ¿¬»êÀÚ´Â C ¾ð¾î¿Í °°´Ù. Á¶°Ç¹®¿¡ °ýÈ£´Â ¾ø¾îµµ »ó°ü¾øÁö¸¸ C ¾ð¾î¿ÍÀÇ ÀÏ°ü¼ºÀ» À§ÇØ ½Î ÁÖ´Â °ÍÀÌ º¸±â ÁÁ´Ù.

 

#if (LEVEL == 3)

#if (VER >= 7)

 

¡á ºñ±³ ´ë»óÀº Á¤¼ö¸¸ °¡´ÉÇÏ¸ç ½Ç¼ö³ª ¹®ÀÚ¿­Àº ¾ÈµÈ´Ù. ¸ÅÅ©·Î´Â °ªÀ̶ó±âº¸´Ù ÀÏÁ¾ÀÇ Ç¥½ÄÀ̱⠶§¹®¿¡ Á¤¼ö ¼öÁØÀ̸é ÃæºÐÇÏ´Ù. ¹öÀü ¹øÈ£´Â 1.2, 2.5 ½ÄÀ¸·Î ½Ç¼ö·Î ¸Å±â´Â °ÍÀÌ º¸ÅëÀÌÁö¸¸ ¸ÅÅ©·Î »ó¼ö·Î ¹öÀüÀ» Ç¥ÇöÇÒ ¶§´Â 120, 250 ½ÄÀ¸·Î Á¤¼öÈ­ÇÑ´Ù. ¸ÅÅ©·Î³¢¸®´Â ºñ±³ÇÒ ¼ö ÀÖ´Ù.

 

#if (VER == 3.14)             // ¿¡·¯

#if (NAME == "Kim")          // ¿¡·¯

#if (LEVEL == BASIC)        // °¡´É

 

¡á ¼ö½Ä ³»¿¡¼­ °£´ÜÇÑ »çÄ¢ ¿¬»êÀ» ÇÒ ¼ö ÀÖ´Ù. ³ª¸ÓÁö ¿¬»êÀ̳ª ºñÆ® ¿¬»ê±îÁö °¡´ÉÇÏÁö¸¸ ++, -- µî °ªÀ» º¯°æÇÏ´Â ¿¬»êÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. Àü󸮴 ÄÄÆÄÀÏ ÀÌÀü ´Ü°èÀÌ°í ¸ÅÅ©·Î´Â »ó¼öÀ̹ǷΠ°ªÀ» º¯°æÇÏ´Â °ÍÀº º° Àǹ̰¡ ¾ø´Ù.

 

#if (LEVEL*2 == 6)

#if (TIME == 365*24)

 

¡á ³í¸® ¿¬»êÀÚ·Î µÎ °³ ÀÌ»óÀÇ Á¶°ÇÀ» µ¿½Ã¿¡ Æò°¡ÇÒ ¼ö ÀÖ¾î º¹ÀâÇÑ Á¶°ÇÀ» Á¡°ËÇÒ ¼ö ÀÖ´Ù. ¼¼ °³ ÀÌ»óµµ °¡´ÉÇ쵂 °ýÈ£·Î ¿ì¼± ¼øÀ§¸¦ Á¤È®È÷ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

 

#if (LEVEL == 8 && VER != 3)

 

¡á ¸ÅÅ©·ÎÀÇ Á¸Àç ¿©ºÎ¸¸ Á¶»çÇÒ ¶§´Â defined ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. #if defined(MACRO) ¹®ÀåÀº #ifdef MACRO¿Í °°´Ù. ´Ù¸¥ Á¶°Ç°ú ÇÔ²² ¸ÅÅ©·ÎÀÇ Á¸Àç ¿©ºÎ¸¦ Æò°¡ÇÒ ¶§´Â #ifdef¸¦ ¾µ ¼ö ¾øÀ¸¹Ç·Î defined ¿¬»êÀÚ°¡ Á¦°øµÈ´Ù. ÀÌ ¿¬»êÀÚ´Â Àüó¸® °úÁ¤¿¡¼­¸¸ µ¿ÀÛÇϹǷΠC Äڵ忡¼­´Â ¾µ ¼ö ¾ø´Ù.

 

#if (LEVEL == 8 || defined(PROFESSIONAL))

 

¡á Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ³¢¸® ÁßøµÇ±âµµ ÇÑ´Ù. Á¶°Ç ó¸® Áß¿¡ ¶Ç ´Ù¸¥ Á¶°ÇÀ» º¼ ¼ö ÀÖ°í Áßø ±íÀÌÀÇ Á¦Çѵµ ¾ø´Ù. Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ Çì´õ ÆÄÀÏÀ» º¸¸é ¿î¿µÃ¼Á¦ ¹öÀü, ¾ð¾îÀÇ Á¾·ù µî¿¡ µû¶ó Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ°¡ ¿©·¯°ãÀ¸·Î ÁßøµÇ¾î ÀÖ´Ù.

 

#if (LEVEL == 8)

LEVELÀÌ 8ÀÏ ¶§ÀÇ ÄÚµå

#if (VER > 5)

¹öÀüÀÌ 5º¸´Ù Ŭ ¶§ÀÇ ÄÚµå

#endif

LEVELÀÌ 8ÀÏ ¶§ÀÇ ÄÚµå

#endif

 

#if 0 ±¸¹®Àº ÁÖ¼® ´ë½Å Á¾Á¾ »ç¿ëµÈ´Ù. ¾ÆÁÖ ±ä ¼Ò½º¸¦ ÁÖ¼® ó¸®ÇÒ ¶§ #if 0 ~ #endif·Î °¨½Î¸é Ç×»ó °ÅÁþÀ̹ǷΠ¾ø´Â ÄÚµå·Î Ãë±ÞµÈ´Ù. /* */ ÁÖ¼®°ú È¿°ú´Â °°Áö¸¸ ÁÖ¼®³¢¸®´Â ÁßøµÉ ¼ö ¾ø´Ù´Â Á¦¾àÀÌ Àִµ¥ ºñÇØ #if 0´Â ÁÖ¼®µµ °¨½Ò ¼ö ÀÖ´Ù.

3.#undef

#undef´Â #define°ú ¹Ý´ë·Î ÀÌ¹Ì Á¤ÀÇÇÑ ¸ÅÅ©·Î¸¦ Ãë¼ÒÇÑ´Ù. ÇÑ ¹ø Á¤ÀÇÇÑ ¸ÅÅ©·ÎÀÇ °ªÀ» Áß°£¿¡ ¹Ù²Ù´Â °æ¿ì°¡ ÈçÇÏÁö ¾Ê´Ù. ±×·¯³ª °¡²û °ªÀ» º¯°æÇϰųª ¸ÅÅ©·Î ÀÚü¸¦ ¾ø¾Ö ¹ö¸®°í ½ÍÀ» ¶§ #undef¸¦ »ç¿ëÇÑ´Ù. »ç¿ë¿¹¸¦ º¸ÀÚ.

 

#define SIZE 10

     printf("SIZE=%d\n",SIZE);

#undef SIZE

#define SIZE 20

     printf("SIZE=%d\n",SIZE);

 

ÃÖÃÊ SIZE¸¦ 10À¸·Î Á¤ÀÇÇߴµ¥ ¾î¶² ÀÌÀ¯·Î ´Ù¸¥ °ªÀ¸·Î ¹Ù²Ù°í ½Í´Ù°í ÇÏÀÚ. #defineÀ» µÎ ¹ø ½ÇÇàÇϸé ÀÌ¹Ì Á¤ÀÇÇÑ ¸ÅÅ©·Î¶ó´Â ¿¡·¯°¡ ¹ß»ýÇϴµ¥ ÀÌ·² ¶§ #undef·Î Ãë¼ÒÇÑ ÈÄ ´Ù½Ã Á¤ÀÇÇÑ´Ù. ÈçÄ¡ ¾ÊÁö¸¸ ½ÇÀü¿¡¼­´Â ºÎµæÀÌÇÏ°Ô ¸ÅÅ©·Î¸¦ ÀçÁ¤ÀÇÇÑ ÈÄ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.

´ëÇü ÇÁ·ÎÁ§Æ®ÀÇ °æ¿ì ¸ðµç °ÍÀ» Á÷Á¢ Á¤ÀÇÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿ÜºÎ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϰųª ÆÀ³¢¸® ¿¬ÇÕÇؼ­ °øµ¿ ÇÁ·ÎÁ§Æ®¸¦ ¼öÇàÇÑ´Ù. À̶§ ¿ÜºÎ ¶óÀ̺귯¸®°¡ ÀÌ¹Ì Á¤ÀÇÇÏ´Â ¸ÅÅ©·Î¿Í ÇÁ·ÎÁ§Æ®¿¡¼­ »ç¿ëÇÏ´Â ¸ÅÅ©·Î¸í¿¡ Ãæµ¹ÀÌ ¹ß»ýÇϰųª ¶óÀ̺귯¸®³¢¸® ¸ÅÅ©·Î¸íÀÌ ¿ì¿¬È÷ °ãÄ¥ ¼ö ÀÖ´Ù. ÀÌ·² ¶§´Â ¸ÅÅ©·Î¸¦ ¼öÁ¤ÇÑ ÈÄ »ç¿ëÇÑ´Ù.

 

#ifdef MACRO

#undef MACRO

#endif

#define MACRO ³»°¡ ¿øÇÏ´Â °ª

 

MACRO°¡ ÀÌ¹Ì Á¤ÀǵǾî ÀÖÀ¸¸é Ãë¼ÒÇØ ¹ö¸®°í ¿øÇÏ´Â °ªÀ¸·Î ´Ù½Ã Á¤ÀÇÇÑ´Ù. ¿ÜºÎ ¶óÀ̺귯¸®°¡ ¾²Áöµµ ¾Ê´Â ¸ÅÅ©·Î¸¦ Á¤ÀÇÇØ ¹ö·È°í ÇÁ·ÎÁ§Æ®ÀÇ ¸ÅÅ©·Î¸¦ ¼öÁ¤ÇÒ ¼öµµ ¾ø´Ù¸é ¾î¿ ¼ö ¾øÀÌ ¶óÀ̺귯¸®ÀÇ ¸ÅÅ©·Î¸¦ Ãë¼ÒÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù.

4.¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î

¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î(Predefined Macro)´Â ÄÄÆÄÀÏ·¯°¡ Á¤ÀÇÇÏ´Â ¸ÅÅ©·ÎÀ̸ç ÄÄÆÄÀÏ·¯¿¡ ´ëÇÑ Á¤º¸³ª ÄÄÆÄÀÏ »óȲ¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. »ç¿ëÀÚ°¡ ÀçÁ¤ÀÇÇϰųª º¯°æÇÒ ¼ö ¾ø°í ¿À·ÎÁö ÀÐÀ» ¼ö¸¸ ÀÖ´Ù.

 

¸ÅÅ©·Î¸í

¼³¸í

__DATE__

ÄÄÆÄÀϵɠ¶§ÀÇ ³¯Â¥¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ´Ù.

__TIME__

ÇöÀç ¼Ò½º°¡ ÃÖÈÄ ÄÄÆÄÀϵȠ½Ã°£À» ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ´Ù.

__TIMESTAMP__

ÇöÀç ¼Ò½º°¡ ÃÖÈķΠ¼öÁ¤µÈ ³¯Â¥¿Í ½Ã°£À» ³ªÅ¸³½´Ù.

__FILE__

ÇöÀç ¼Ò½º ÆÄÀÏÀÇ ¿ÏÀü °æ·ÎÀÌ´Ù.

__LINE__

ÀÌ ¸ÅÅ©·Î°¡ Æ÷ÇԵȠ¼Ò½º»óÀÇ ÁÙ ¹øÈ£ÀÌ´Ù. 10Áø Á¤¼öÀÌ´Ù.

__STDC__

ÄÄÆÄÀÏ·¯°¡ ANSI C Ç¥ÁØÀ» µû¸¦ °æ¿ì 1·Î Á¤ÀǵǸ砱׷¸Áö ¾ÊÀ» °æ¿ì Á¤ÀǵÇÁö ¾Ê´Â´Ù. C++·Î ÄÄÆÄÀÏÇÒ ¶§´Â ÀÌ ¸ÅÅ©·Î°¡ ¾ø´Ù.

 

ÀÌ °ªÀÌ ÇÊ¿äÇÑ °÷¿¡ ¸ÅÅ©·Î¸íÀ» ³Ö±â¸¸ Çϸé ÄÄÆÄÀÏ·¯°¡ ½ÇÁ¦°ªÀ¸·Î ´ëüÇØÁØ´Ù. ´ÙÀ½ ¿¹Á¦·Î ÀÌ ¸ÅÅ©·ÎÀÇ ½ÇÁ¦°ªÀ» Ãâ·ÂÇØ º¸ÀÚ.

 

predefine

#include <stdio.h>

 

int main()

{

     printf("¿À´ÃÀº %sÀÌ°í  ÃÖÈÄ ÄÄÆÄÀÏµÈ ½Ã°£Àº %sÀÔ´Ï´Ù.\n", __DATE__, __TIME__);

     printf("ÀÌ ÆÄÀÏÀÌ ÃÖÁ¾ ¼öÁ¤µÈ ½Ã°£Àº %sÀÔ´Ï´Ù.\n", __TIMESTAMP__);

     printf("ÀÌ ÆÄÀÏÀº %sÀÌ°í ÀÌ ÁÙÀº %dÀÔ´Ï´Ù.\n",__FILE__, __LINE__);

#ifdef __STDC__

     printf("ÀÌ ÄÄÆÄÀÏ·¯´Â ANSI CÇ¥ÁØÀ» µû¸¨´Ï´Ù.\n");

#else

     printf("ÀÌ ÄÄÆÄÀÏ·¯´Â ANSI CÇ¥ÁØÀÇ È®Àå(C++)ÀÔ´Ï´Ù.\n");

#endif

}

½ÇÇà°á°ú

¿À´ÃÀº Feb 23 2017ÀÌ°í  ÃÖÈÄ ÄÄÆÄÀÏµÈ ½Ã°£Àº 21:39:25ÀÔ´Ï´Ù.

ÀÌ ÆÄÀÏÀÌ ÃÖÁ¾ ¼öÁ¤µÈ ½Ã°£Àº Thu Feb 23 21:39:23 2017ÀÔ´Ï´Ù.

ÀÌ ÆÄÀÏÀº c:\cstudy\ctest\ctest\ctest.cÀÌ°í ÀÌ ÁÙÀº 7ÀÔ´Ï´Ù.

ÀÌ ÄÄÆÄÀÏ·¯´Â ANSI CÇ¥ÁØÀÇ È®Àå(C++)ÀÔ´Ï´Ù.

 

ºôµåÇÑ Á¤È®ÇÑ ³¯Â¥°¡ ½ÇÇà ÆÄÀÏ¿¡ ¹®ÀÚ¿­ ÇüÅ·Π±â·ÏµÈ´Ù. ½ÇÁ¦ Á¤º¸´Â ÄÄÆÄÀÏÇÑ ½ÃÁ¡¿¡ µû¶ó ´Þ¶óÁöÁö¸¸ ½ÇÇàÁß¿¡ Á¶»çÇÏ´Â °ªÀÌ ¾Æ´Ï¹Ç·Î ½ÇÇà ½ÃÁ¡¿¡ µû¶ó ´Þ¶óÁöÁö´Â ¾Ê´Â´Ù. ÃÖÁ¾ ºôµåÇÑ ³¯Â¥¸¦ ½ÇÇà ÆÄÀÏ ³»ºÎ¿¡ ±â·ÏÇØ ³õÀ» ¶§ À¯¿ëÇÏ´Ù.

__FILE__, __LINE__ Á¤º¸´Â ¿¡·¯ ¹ß»ý½Ã ÇØ´ç ÆÄÀÏ°ú ¿¡·¯ ¹ß»ý À§Ä¡¸¦ Ãâ·ÂÇÒ ¶§ »ç¿ëÇÑ´Ù. µð¹ö±ë Á¤º¸¸¦ Ãâ·ÂÇÏ´Â assert ÇÔ¼ö°¡ ÀÌ ¸ÅÅ©·Î·Î ¿¡·¯¿¡ ´ëÇÑ Á¤º¸¸¦ Á¶»çÇÑ´Ù. #line Àü󸮹®Àº ÀÌ µÎ ¸ÅÅ©·ÎÀÇ °ªÀ» º¯°æÇϴµ¥ »ç¿ëÀÚ°¡ Á÷Á¢ ¾²´Â °æ¿ì´Â º°·Î ¾ø°í ÄÄÆÄÀÏ·¯°¡ ³»ºÎÀûÀ¸·Î »ç¿ëÇÑ´Ù.

ÀÌ ¿Ü¿¡µµ ÄÄÆÄÀÏ·¯¿¡ µû¶ó °íÀ¯ÇÑ ¸ÅÅ©·Î¸¦ Á¦°øÇϴµ¥ ºñÁÖ¾ó C++ÀÇ °æ¿ì _DEBUG, _WIN32 µîÀÇ ¸ÅÅ©·Î·Î ºôµå ÇüÅÂ, ¿î¿µÃ¼Á¦ ȯ°æ¿¡ ´ëÇÑ Á¤º¸¸¦ Ç¥½ÃÇÑ´Ù. ƯÁ¤ ÄÄÆÄÀÏ·¯¸¸ Á¦°øÇÏ´Â Á¤º¸¿©¼­ À̽ļº¿¡´Â ºÒ¸®ÇÏ´Ù.

 

4. #ÁÖ¼® ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Â Àü󸮹®Àº ¹«¾ùÀΰ¡?

¨ç #undef

¨è defined()

¨é #if 0 ~ #endif

¨ê #ifndef ~ #endif

 

4. ¨é 0Àº Ç×»ó °ÅÁþÀ¸·Î Æò°¡µÇ¹Ç·Î ÀÌ ºí·Ï¿¡ ¼ÓÇÑ ÄÚµå´Â ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÈ´Ù.