#ifdef, #ifndef´Â ¸ÅÅ©·ÎÀÇ Á¸Àç ¿©ºÎ¸¸À¸·Î ÄÄÆÄÀÏ Á¶°ÇÀ» ÆÇ´ÜÇÏ¸ç ¸ÅÅ©·Î°¡ ¾î¶² °ªÀ¸·Î Á¤ÀǵǾî ÀÖ´ÂÁö´Â Æò°¡ÇÏÁö ¾Ê´Â´Ù. ÀÌ¿¡ ºñÇØ #if´Â ¸ÅÅ©·ÎÀÇ °ªÀ» Æò°¡Çϰųª ¿©·¯ °¡Áö Á¶°ÇÀ» °áÇÕÇÏ¿© ÄÄÆÄÀÏ ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â Á» ´õ º¹ÀâÇÑ Àü󸮹®ÀÌ´Ù. #ifdefº¸´Ù´Â »ç¿ë¹ýÀÌ Á¶±Ý ±î´Ù·ÓÁö¸¸ C ¾ð¾îÀÇ Á¶°Ç¹®°ú À¯»çÇϹǷΠ½±°Ô ÀÍÈú ¼ö ÀÖ´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
#if Á¶°Ç1
ÄÚµå1 // Á¶°Ç1À» ¸¸Á·Çϸé ÄÚµå1À» ÄÄÆÄÀÏ
#elif Á¶°Ç2
ÄÚµå2 // Á¶°Ç 2°¡ ¸¸Á·µÇ¸é ÄÚµå2¸¦ ÄÄÆÄÀÏ
#else
ÄÚµå3 // µÑ ´Ù ¸ÂÁö ¾ÊÀ¸¸é ÄÚµå 3À» ÄÄÆÄÀÏ
#endif
C ¾ð¾îÀÇ if .... else if .... else¿Í °ÅÀÇ À¯»çÇÑ ±¸¹®À̶ó°í º¼ ¼ö ÀÖ´Ù. #elif¿Í #else´Â ÇÊ¿ä¾øÀ» °æ¿ì »ý·« °¡´ÉÇϸç #elif´Â ¾ó¸¶µçÁö ¿Ã ¼ö ÀÖ´Ù. #elif¸¦ ¹Ýº¹ÀûÀ¸·Î °è¼Ó »ç¿ëÇϸé C¾ð¾îÀÇ switch case ±¸¹®°ú À¯»çÇÑ ±¸Á¶¸¦ ¸¸µé ¼ö ÀÖ´Ù. #if´Â µÚÀÇ Á¶°ÇÀ» Æò°¡ÇØ º¸°í ÀÌ Á¶°ÇÀÌ ÂüÀÌ¸é ¹Ù·Î ¾Æ·¡ÀÇ ºí·ÏÀ» ÄÄÆÄÀÏ·¯¿¡°Ô ³Ñ±â°í ±×·¸Áö ¾Ê´Ù¸é »èÁ¦ÇÏ¿© ¾ø´Â °ÍÀ¸·Î Ãë±ÞÇÑ´Ù. ¶æ ±×´ë·Î Á¶°Ç¿¡ µû¶ó ÄÄÆÄÀÏÇÒ ºí·ÏÀ» ¼±ÅÃÇÏ´Â °ÍÀÌ´Ù.
#if¿Í #elif´ÙÀ½¿¡´Â ÄÄÆÄÀÏ ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â Á¶°Ç¹®ÀÌ ¿À´Âµ¥ ÀÌ Á¶°Ç¹®Àº Àüó¸® °úÁ¤¿¡¼ ÁøÀ§ ¿©ºÎ¸¦ ÆÇ´ÜÇÒ ¼ö ÀÖ´Â °ÍÀ̾î¾ß ÇÑ´Ù. ½ÇÇà Áß¿¡ °ªÀÌ °áÁ¤µÇ´Â º¯¼ö¸¦ ÂüÁ¶ÇѴٰųª ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀº ¾ÈµÇ¸ç ÁÖ·Î ¸ÅÅ©·ÎÀÇ °ªÀÌ Æò°¡ ´ë»óÀÌ´Ù. ´ÙÀ½Àº #if Àü󸮹®ÀÇ ÀÛ¼º ±ÔÄ¢Àε¥ ´ëºÎºÐ »ó½Ä°ú ÀÏÄ¡ÇϹǷΠ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¸ÅÅ©·Î°ªÀ» ºñ±³ÇÒ ¶§´Â »óµî, ºñ±³ ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. °°´Ù, ´Ù¸£´Ù´Â
==, != ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸ç ´ë¼Ò¸¦ ºñ±³ÇÒ ¶§´Â >, <, >=, <= ºñ±³ ¿¬»êÀÚ°¡ »ç¿ëµÈ´Ù. ±¸Çü ÄÄÆÄÀÏ·¯µéÀº »óµî
¿¬»êÀÚ¸¸ Çã¿ëÇß¾úÀ¸³ª ÃֽŠÄÄÆÄÀÏ·¯´Â ºñ±³ ¿¬»êÀÚµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. C¾ð¾îÀÇ »óµî, ºñ±³ ¿¬»êÀÚ¿Í ¸ð¾çÀÌ ¿ÏÀüÈ÷ ÀÏÄ¡ÇÏ´Â ¼ÀÀÌ´Ù.
#if (LEVEL == 3)
#if (VER >= 7)
Á¶°Ç¹®Àº ²À °ýÈ£·Î ½ÎÁö ¾Ê¾Æµµ »ó°ü¾øÁö¸¸ CÀÇ Á¶°Ç¹®¿¡ Àͼ÷ÇÑ °³¹ßÀÚµéÀº #if¿¡µµ °¡±ÞÀû °ýÈ£¸¦ ºÙ¿© ÁÖ´Â ÆíÀÌ¸ç °ýÈ£°¡ ÀÖ´Â ÆíÀÌ º¸±â¿¡µµ ¾ÈÁ¤°¨ÀÌ ´À²¸Á® ÁÁ´Ù. #if´Â Á¶°Ç¹®ÀÌ ÂüÀÏ ¶§ 1·Î, °ÅÁþÀÏ ¶§ 0À¸·Î Æò°¡Çϴµ¥ °á°ú°¡ 0ÀÌ ¾Æ´Ï¸é À̾îÁö´Â ÄÚµå ºí·ÏÀ» ÄÄÆÄÀÏÇÑ´Ù. ÀÌ Á¡µµ C¿Í µ¿ÀÏÇÏ´Ù.
ºñ±³ ´ë»óÀº Á¤¼ö »ó¼ö¿©¾ß ÇÏ¸ç ½Ç¼ö³ª ¹®ÀÚ¿Àº ¸ÅÅ©·Î¿Í ºñ±³ÇÒ ¼ö ¾ø´Ù.
ÄÄÆÄÀÏ·¯¿¡ µû¶ó ½Ç¼ö ºñ±³¸¦ Çã¿ëÇÏ´Â °Íµéµµ Àִµ¥ Á¶°ÇºÎ ÄÄÆÄÀÏÀ» ÅëÁ¦ÇÏ´Â ¸ÅÅ©·Î´Â ´ë¼Ò°¡ ÀÖ´Â °ªÀ̶ó±â º¸´Ù´Â ÁַΠǥ½ÄÀ̱⠶§¹®¿¡ ½Ç¼ö´Â
º°·Î ½Ç¿ë¼ºÀÌ ¾ø´Ù°í ÇÒ ¼ö ÀÖ´Ù. Á¤¼ö°ªÀ» °¡Áö´Â ´Ù¸¥ ¸ÅÅ©·Î¿Í °ªÀ» ºñ±³ÇÏ´Â °ÍÀº °¡´ÉÇÏ´Ù.
#if (VER == 3.14) // ¿¡·¯
#if (NAME == "Kim") // ¿¡·¯
#if (LEVEL == BASIC) // °¡´É
¹öÀü ¹øÈ£ °°Àº °æ¿ì¿¡ 1.0, 1.5°°ÀÌ ½Ç¼ö·Î Ç¥±âÇÏÁö¸¸ ¸ÅÅ©·Î »ó¼ö·Î ¹öÀüÀ» Ç¥½ÃÇÒ ¶§´Â 100, 150 µî°ú °°ÀÌ Á¤¼öÈÇØ¼ »ç¿ëÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù.
¼ö½Ä ³»¿¡¼ °£´ÜÇÑ »çÄ¢ ¿¬»êÀ» ÇÒ ¼ö ÀÖ´Ù. Àü󸮱Ⱑ ¿¬»ê¹®À» Æò°¡ÇÑ
ÈÄ ±× °á°ú¸¦ ºñ±³ÇϹǷΠ´Ù¼Ò º¹ÀâÇÑ ½ÄÀº ±»ÀÌ °á°ú¸¦ °è»êÇØ ³ÖÀ» ÇÊ¿ä¾øÀÌ ¼ö½ÄÀ» ¹Ù·Î ½áµµ »ó°ü¾ø´Ù.
#if (LEVEL*2 == 6)
#if (TIME == 365*24)
³ª¸ÓÁö ¿¬»ê, ºñÆ® ¿¬»ê µîµµ °¡´ÉÇÏ´Ù. ±×·¯³ª ++, --, Æ÷ÀÎÅÍ ¿¬»ê, sizeof, ij½ºÆ® ¿¬»ê µîÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·± ¿¬»êµéÀº Àü󸮹®¿¡¼ ºÒ°¡´ÉÇϰųª Àǹ̰¡ ¾ø±â ¶§¹®ÀÌ´Ù. ¸ÅÅ©·Î´Â »ó¼öÀ̹ǷΠÁº¯°ªÀÌ ¾Æ´Ï¸ç sizeof ¿¬»êÀÚ´Â ÄÄÆÄÀϽÿ¡ Æò°¡µÈ´Ù. Àü󸮴 ÄÄÆÄÀÏ ÀÌÀüÀÇ ´Ü°èÀÓÀ» ¸í½ÉÇϵµ·Ï ÇÏÀÚ.
³í¸® ¿¬»êÀÚ·Î µÎ °³ ÀÌ»óÀÇ Á¶°ÇÀ» µ¿½Ã¿¡ Æò°¡ÇÒ ¼ö ÀÖ´Ù. C¾ð¾îÀÇ ³í¸®
¿¬»êÀÚ¿Í °°Àº &&, ||, !¸¦ ±×´ë·Î »ç¿ëÇÏ¸é µÈ´Ù.
#if (LEVEL == 8 && VER != 3)
¼¼ °³ ÀÌ»óÀÇ Á¶°Çµµ ¹°·Ð Æò°¡ÇÒ ¼ö ÀÖ´Ù. À̶§ ÇÊ¿äÇÏ´Ù¸é Á¶°Ç Æò°¡ÀÇ ¿ì¼± ¼øÀ§ ÁöÁ¤À» À§ÇØ °ýÈ£¸¦ »ç¿ëÇÑ´Ù.
defined ¿¬»êÀÚ·Î ¸ÅÅ©·ÎÀÇ Á¸Àç ¿©ºÎ¸¦ Æò°¡ÇÒ ¼ö ÀÖ´Ù. #if
defined(MACRO) Àü󸮹®Àº #ifdef MACRO¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÑ ¹®ÀåÀÌ´Ù. ±×·¯³ª ´Ù¸¥ Á¶°Ç°ú ÇÔ²² ¸ÅÅ©·ÎÀÇ Á¸Àç ¿©ºÎ¸¦ Æò°¡ÇÒ ¶§´Â
#ifdef¸¦ ¾µ ¼ö ¾øÀ¸¹Ç·Î defined ¿¬»êÀÚ°¡ µû·Î Á¦°øµÈ´Ù.
#if (LEVEL == 8 || defined(PROFESSIONAL))
defined ¿¬»êÀÚ´Â Àü󸮹®³»¿¡¼¸¸ »ç¿ëµÇ¹Ç·Î ÀÏ¹Ý CÄڵ忡¼´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.
#if ´ÙÀ½ÀÇ Á¶°ÇºÎ ÄÄÆÄÀÏ ºí·Ï¿¡´Â ¾î¶² ¹®ÀåÀ̵çÁö ¿Ã ¼ö ÀÖ´Ù.
a=b+c; ¿¬»ê¹®À̳ª ÇÔ¼ö È£Ãâ¹®, int i; °°Àº ¼±¾ð¹®Àº ¹°·ÐÀ̰í struct tag_A { ~ °°Àº Á¤Àǹ®µµ ¿Ã ¼ö ÀÖ´Ù. ½ÉÁö¾î
#include, #define°°Àº ´Ù¸¥ Àü󸮹®µµ Á¶°ÇºÎ ÄÄÆÄÀÏ(Á¤È®ÇÏ°Ô Ç¥ÇöÇÑ´Ù¸é Á¶°ÇºÎ Àüó¸®) ´ë»óÀÌ µÉ ¼ö ÀÖ´Ù. ±×·¸´Ù¸é #if¾È¿¡
¶Ç ´Ù¸¥ #if¹®ÀÌ ¿Ã ¼ö ÀÖ´Ù´Â ¾ê±â°¡ µÇ¸ç Áï #if´Â Áßø°¡´ÉÇÑ Àü󸮹®ÀÌ´Ù.
#if (LEVEL == 8)
LEVELÀÌ 8ÀÏ ¶§ÀÇ ÄÚµå
#if (VER > 5)
¹öÀüÀÌ 5º¸´Ù Ŭ ¶§ÀÇ ÄÚµå
#endif
LEVELÀÌ 8ÀÏ ¶§ÀÇ ÄÚµå
#endif
#if¾È¿¡ #ifdef°¡ ¿Ã ¼öµµ ÀÖ°í ¹Ý´ëµµ °¡´ÉÇϸç Áßø ±íÀÌ¿¡ Á¦Çѵµ ¾ø´Ù. Á¶°Ç¼Ó¿¡ ¶Ç ´Ù¸¥ Á¶°ÇÀÌ ÀÖ´Â °ÍÀº ÀÚ¿¬½º·¯¿î °ÍÀ̹ǷΠÀü󸮱â´Â ´ç¿¬È÷ Á¶°ÇºÎ ÄÄÆÄÀϹ®ÀÇ ÁßøÀ» Çã¿ëÇÑ´Ù. ´Ü, Àü󸮹®ÀÌ Áߺ¹µÉ °æ¿ì ¦ÀÌ µÇ´Â #endif°¡ ¹Ýµå½Ã Á¸ÀçÇØ¾ß ÇÑ´Ù´Â °Í¸¸ ÁÖÀÇÇÏ¸é µÈ´Ù. #endif´Â Á¶°ÇºÎ ÄÄÆÄÀÏ ´ë»óÀÇ ³¡À» ¸í½ÃÇÏ´Â Áß¿äÇÑ ¿ªÇÒÀ» ÇÑ´Ù. C ÄÚµå´Â ºí·ÏÀÌ ÁßøµÉ ¶§ Àû´çÈ÷ µé¿©¾²±â¸¦ ÇÏÁö¸¸ Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ°¡ ÁßøµÉ °æ¿ì µé¿©¾²±â´Â ÇÏÁö ¾Ê´Â °ÍÀÌ º¸ÅëÀÌ´Ù.
´ÙÀ½Àº #ifÀÇ È°¿ë¿¹¸¦ º¸ÀÚ. ¾î¶² ¹®Á¦¸¦ ÇØ°áÇϴµ¥ ¼¼ °¡Áö(¶Ç´Â ±× ÀÌ»ó) ¹æ¹ýÀÌ ÀÖ°í °¢ ¹æ¹ýÀ» Àû¿ëÇßÀ» ¶§ÀÇ ¼º´ÉÀ» Å×½ºÆ®ÇØ º¸·Á°í ÇÑ´Ù. À̶§ °¢ ¹æ¹ýÀÇ Äڵ带 Áö¿ü´Ù ³Ö¾ú´Ù ÇÒ ÇÊ¿ä¾øÀÌ ´ÙÀ½°ú °°ÀÌ Á¶°ÇºÎ ÄÄÆÄÀϹ®À¸·Î ÀÛ¼ºÇØ ³õÀ¸¸é METHOD ¸ÅÅ©·Î¸¸ º¯°æÇÏ¿© Àû¿ëÇÒ ¹æ¹ýÀ» ½±°Ô ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ÀÌ Äڵ尡 ´Ù¸¥ ÇÁ·Î±×·¥ÀÇ ºÎǰÀ¸·Î »ç¿ëµÇ´Â ¶óÀ̺귯¸®ÀÌ°í °í°´¸¶´Ù ¼±È£ÇÏ´Â ¹æ¹ýÀÌ ´Ù¸£´Ù¸é ¸ðµç Äڵ带 ¼Ò½º¿¡ µÐ ä °í°´ÀÇ ÁÖ¹®´ë·Î Á¶°ÇºÎ ÄÄÆÄÀÏÇϱ⸸ ÇÏ¸é µÈ´Ù.
#define METHOD 1
#if (METHOD == 1)
¹æ¹ý1
#elif (METHOD == 2)
¹æ¹ý2
#else
¹æ¹ý3
#endif
#if 0µµ ÁÖ¼® ´ë½Å ÈçÈ÷ »ç¿ëµÇ´Â ±¸¹®ÀÌ´Ù. ¾ÆÁÖ ±ä ¼Ò½º¸¦ Àá½Ã ÁÖ¼® ó¸®ÇØ ³õ°í ½ÍÀ» ¶§´Â ÀÌ ºÎºÐÀ» #if 0 .... #endif·Î °¨½Î ¹ö¸®¸é Ç×»ó °ÅÁþÀ̹ǷΠÀü󸮱⿡ ÀÇÇØ ÀÌ ÄÚµå´Â ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÈ´Ù. /* */ ÁÖ¼®Àº ÁßøµÉ ¼ö ¾ø¾î ±ä ¼Ò½º¸¦ ÁÖ¼® ó¸®ÇÒ ¶§ ºÒÆíÇÑ ¹Ý¸é #if 0´Â Áßø °¡´ÉÇϱ⠶§¹®¿¡ ÀÌ·± ¹®Á¦°¡ ¾ø´Ù.