Á¶°ÇºÎ ÄÄÆÄÀÏ(Conditional
Compile)À̶õ ÄÚµåÀÇ ÄÄÆÄÀÏ ¿©ºÎ¸¦ Á¶°ÇÀÇ ÁøÀ§ ¿©ºÎ¿¡
µû¶ó °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÄÚµåÀÇ Æ÷ÇÔ ¿©ºÎ¸¦ °áÁ¤ÇØ¾ß ÇϹǷΠÄÄÆÄÀÏÇϱâ ÀüÀÎ Àüó¸® ´Ü°è¿¡¼ ¼öÇàÇÑ´Ù. Á¶°ÇÀº ÁÖ·Î ¸ÅÅ©·Î »ó¼öÀÇ Á¸Àç ¿©ºÎ³ª ¸ÅÅ©·Î°ªÀ¸·Î ÁöÁ¤Çϸç ÄÄÆÄÀÏÇϱâ ÀüÀÌ¾î¼ º¯¼ö³ª ÇÔ¼ö È£Ãâ¹®Àº »ç¿ëÇÒ
¼ö ¾ø´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
#ifdef ¸ÅÅ©·Î¸í
ÄÚµå
#endif
#ifdef ´ÙÀ½¿¡ Á¶°ÇÀÌ µÇ´Â ¸ÅÅ©·Î¸íÀ» ¾²°í #endif »çÀÌ¿¡ Á¶°ÇºÎ·Î Æ÷ÇÔÇÒ Äڵ带 ÀÛ¼ºÇÑ´Ù. ¸ÅÅ©·Î°¡ Á¸ÀçÇϸé
ÄÚµå´Â Æ÷ÇԵǾî ÄÄÆÄÀÏµÇ¸ç ±×·¸Áö ¾Ê´Ù¸é Àüó¸® °úÁ¤¿¡¼ »èÁ¦µÇ¾î ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÈ´Ù. #ifdef ~
#endif »çÀÌÀÇ ºí·ÏÀÌ Á¶°ÇºÎ ÄÄÆÄÀÏ ´ë»óÀ̸ç Àü󸮹®À¸·Î ºí·ÏÀÌ ÁöÁ¤µÇ¾î ÀÖÀ¸¹Ç·Î { } °ýÈ£·Î
°¨½Ò ÇÊ¿ä´Â ¾ø´Ù.
ÀÌ
±â´ÉÀ» Àß È°¿ëÇϸé ÇѹúÀÇ Äڵ带 Á¶°Ç¿¡ µû¶ó ´Ù¸£°Ô ÄÄÆÄÀÏÇÏ¿© ¾à°£¾¿ ´Ù¸¥ ½ÇÇà ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦
µé¾î ¿öµå ÇÁ·Î¼¼¼´Â ÀϹݿ뿡 ºñÇØ Àü¹®°¡¿ëÀÌ ±â´ÉÀÌ ´õ ¸¹°í °¡°Ýµµ ºñ½Î´Ù. ±â´Éº°·Î ¿©·¯ ¹öÀüÀ»
¹ßÇ¥ÇÏ´Â °¡°Ý Â÷º°È Á¤Ã¥Àº ÃÖ´ë ¸ÅÃâ°ú ¼öÀÍÀ» ½ÇÇöÇÏ´Â ¸¶ÄÉÆà ±â¹ýÀ¸·Î ÈçÈ÷ »ç¿ëµÈ´Ù.
ÀÌ
°æ¿ì ´ëºÎºÐÀÇ ÄÚµå´Â °øÅëÀûÀÌÁö¸¸ ÀϹݿëÀº Àü¹®°¡ ¹öÀüÀÇ °í±Þ ±â´É ÀϺΰ¡ Á¦¿ÜµÈ´Ù. µÎ ¹öÀüÀÇ Äڵ带
µû·Î À¯ÁöÇÏ´Â °Íº¸´Ù Â÷ÀÌ°¡ ³ª´Â ºÎºÐ¸¸ Á¶°ÇºÎ ÄÄÆÄÀÏÇÏ´Â °ÍÀÌ Äڵ带 À¯Áö, º¸¼öÇϱâ Æí¸®ÇÏ´Ù. Àü¹®°¡¿ë¿¡¸¸ Æ÷ÇԵǴ ÄÚµå´Â ´ÙÀ½ ºí·Ï¾È¿¡ ÀÛ¼ºÇÑ´Ù.
#ifdef PROFESSIONAL
°í±Þ ±â´É
#endif
°í±Þ ±â´ÉÀ» ÀÌ ºí·Ï¾È¿¡ ÀÛ¼ºÇØ ³õÀ¸¸é PROFESSIONAL ¸ÅÅ©·Î
»ó¼ö°¡ Á¤ÀǵǾî ÀÖÀ» ¶§¸¸ ÄÄÆÄÀϵȴÙ. ¼Ò½º ¼±µÎ¿¡ #define PROFESSIONAL ¸ÅÅ©·Î¸¦ ¼±¾ðÇÑ
ä ÄÄÆÄÀÏÇϸé Àü¹®°¡¿ëÀÌ µÇ°í ÀÌ Á¤Àǹ®À» Áö¿ì°Å³ª ÁÖ¼® ó¸®ÇÑ Ã¤·Î ÄÄÆÄÀÏÇϸé ÀϹݿëÀÌ µÈ´Ù. ¸ÅÅ©·Î
Á¤Àǹ® Çϳª·Î ÄÄÆÄÀÏÇÒ Äڵ带 °£ÆíÇÏ°Ô ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.
¸ÅÅ©·Î Á¤Àǹ®À» ÀÛ¼ºÇÏ´Â °ÍÀÌ ±ÍÂú´Ù¸é ÇÁ·ÎÁ§Æ® ¼³Á¤Ã¢¿¡¼µµ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÁ§Æ® ±¸¼ºº°·Î ¸ÅÅ©·Î¸¦ µû·Î Á¤ÀÇÇÒ ¼ö ÀÖ°í ¹èÄ¡ ºôµå±îÁö Áö¿øµÇ¾î Àß ±¸¼ºÇØ ³õÀ¸¸é ¿øÅÍÄ¡·Î Àü¹®°¡¿ë/ÀϹݿë, Çѱ¹¾î/¿µ¾î µîÀÇ
¿©·¯ °¡Áö ¹öÀüÀ» ºôµåÇÒ ¼ö ÀÖ´Ù.
#ifndef´Â ¹Ý´ë·Î ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» ¶§¸¸ ºí·Ï ¾ÈÀÇ
Äڵ带 ÄÄÆÄÀÏÇÑ´Ù. °¡·É ÀϹݿ뿡¸¸ ÀÛ¼ºµÇ´Â ÄÚµå´Â #ifndef PROFESSIONAL ~ #endif »çÀÌ¿¡ ÀÛ¼ºÇÑ´Ù. #else ±¸¹®Àº ¹Ý´ëÀÇ Á¶°ÇÀ» ó¸®Çϴµ¥ Á¶°Ç¿¡ µû¶ó ÄÄÆÄÀÏÇÒ Äڵ带 ¼±ÅÃÇÑ´Ù. Àü¹®°¡¿ë°ú ÀϹݿëÀÇ ±â´ÉÀÌ ´Ù¸£´Ù¸é ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.
#ifdef PROFESSIONAL
Àü¹®°¡¿ëÀÇ ÄÚµå
#else
ÀϹݿëÀÇ ÄÚµå
#endif
Ç¥ÁØ Çì´õ ÆÄÀϵµ Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ¸¦ Àû±ØÀûÀ¸·Î È°¿ëÇÏ¿© ¿î¿µÃ¼Á¦, À¯´ÏÄÚµå
»ç¿ë ¿©ºÎ, µð¹ö±× ¹öÀü µîÀÇ Á¶°Ç¿¡ µû¶ó ÇϳªÀÇ ¼Ò½º·Î ´Ù¸¥ Äڵ带 »ý¼ºÇØ ³½´Ù. Á¶°ÇÀ» ¹Ù²ã °¡¸ç ÄÄÆÄÀÏÇÔÀ¸·Î½á ¿©·¯ °¡Áö ȯ°æ¿¡ µÎ·ç Àû¿ëÇÒ ¼ö ÀÖ´Â À̽ļºÀÌ È®º¸µÈ´Ù.
#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´Â ÁÖ¼®µµ °¨½Ò ¼ö ÀÖ´Ù.
#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°¡ ÀÌ¹Ì Á¤ÀǵǾî ÀÖÀ¸¸é Ãë¼ÒÇØ ¹ö¸®°í ¿øÇÏ´Â °ªÀ¸·Î ´Ù½Ã
Á¤ÀÇÇÑ´Ù. ¿ÜºÎ ¶óÀ̺귯¸®°¡ ¾²Áöµµ ¾Ê´Â ¸ÅÅ©·Î¸¦ Á¤ÀÇÇØ ¹ö·È°í ÇÁ·ÎÁ§Æ®ÀÇ ¸ÅÅ©·Î¸¦ ¼öÁ¤ÇÒ ¼öµµ ¾ø´Ù¸é
¾î¿ ¼ö ¾øÀÌ ¶óÀ̺귯¸®ÀÇ ¸ÅÅ©·Î¸¦ Ãë¼ÒÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù.
¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î(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Àº Ç×»ó °ÅÁþÀ¸·Î
Æò°¡µÇ¹Ç·Î ÀÌ ºí·Ï¿¡ ¼ÓÇÑ ÄÚµå´Â ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÈ´Ù.