Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ(Conditional Compile Directive)´Â ÁöÁ¤ÇÑ Á¶°ÇÀÇ ÁøÀ§ ¿©ºÎ¿¡ µû¶ó ÄÚµåÀÇ ÀÏÁ¤ ºÎºÐÀ» ÄÄÆÄÀÏÇÒ °ÍÀÎÁö ¾Æ´ÑÁö¸¦ ÁöÁ¤ÇÑ´Ù. Àü󸮹®À̹ǷΠÄÄÆÄÀϵDZâ Àü¿¡ Á¶°ÇÀ» Æò°¡Çϸç Äڵ带 ÄÄÆÄÀÏ ´ë»ó¿¡ Æ÷ÇÔ½ÃŰ°Å³ª Á¦¿Ü½ÃŰ´Â ¿ªÇÒÀ» ÇÑ´Ù. À̶§ Á¶°ÇÀÇ ÇüÅ´ ¿©·¯ °¡Áö°¡ ÀÖÁö¸¸ ÁÖ·Î ¸ÅÅ©·Î »ó¼öÀÇ Á¸Àç ¿©ºÎ³ª °ª¿¡ ´ëÇÑ Æò°¡½ÄÀÌ »ç¿ëµÈ´Ù. ½ÇÇàÁß¿¡ °áÁ¤µÇ´Â º¯¼öÀÇ °ªÀ̳ª ÇÔ¼ö È£ÃâÀº ´ç¿¬È÷ Á¶°Ç¹®ÀÌ µÉ ¼ö ¾ø´Ù.
Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ¸¦ Àß È°¿ëÇϸé ÇѹúÀÇ Äڵ带 Á¶°Ç¿¡ µû¶ó ´Ù¸£°Ô ÄÄÆÄÀÏÇÏ¿© »óÀÌÇÑ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î³¾ ¼ö ÀÖ´Ù. ¸¸¾à Á¶°ÇºÎ ÄÄÆÄÀÏ ±â´ÉÀÌ ¾ø´Ù¸é ½ÇÇà ÆÄÀϺ°·Î ¼Ò½º¸¦ µû·Î À¯ÁöÇØ¾ß ÇϹǷΠ¹«Ã´ ¹ø°Å·Î¿ÍÁø´Ù. Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ´Â ´Ù¾çÇÑ »óȲ°ú ¸ñÀû¿¡ ¸Â°Ô ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏ¿© ȣȯ¼º°ú À̽ļºÀ» È®º¸ÇÏ´Â ¼ö´ÜÀ¸·Î ºó¹øÇÏ°Ô È°¿ëµÇ¹Ç·Î Àß ¾Ë¾Æ µÎµµ·Ï ÇÏÀÚ. ´ÙÀ½ ±¸¹®ÀÌ Á¶°ÇºÎ ÄÄÆÄÀϹ®ÀÇ °¡Àå ÀüÇüÀûÀÎ ¿¹ÀÌ´Ù.
#ifdef ¸ÅÅ©·Î¸í
ÄÚµå
#endif
#ifdef ´ÙÀ½¿¡ Á¶°ÇÀÌ µÇ´Â ¸ÅÅ©·Î¸íÀ» ½á ÁÖ°í #endif »çÀÌ¿¡ Á¶°ÇºÎ·Î ÄÄÆÄÀÏÇÒ Äڵ带 ÀÛ¼ºÇÑ´Ù. Á¶°ÇºÎ ÄÄÆÄÀÏ ºí·Ï¿¡ Æ÷ÇÔµÈ ÄÚµå´Â ¸ÅÅ©·Î°¡ Á¸ÀçÇϸé ÄÄÆÄÀ쵃 °ÍÀÌ°í ±×·¸Áö ¾Ê´Ù¸é Àüó¸® °úÁ¤¿¡¼ »èÁ¦µÇ¾î ¾Æ¿¹ ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÈ´Ù. #ifdef ~ #endif ºí·ÏÀ¸·Î Á¶°ÇºÎ ÄÄÆÄÀÏ ´ë»ó Äڵ带 ¸í½ÃÇϹǷΠ{ } ·Î ÀÌ Äڵ带 °¨½Ò ÇÊ¿ä´Â ¾ø´Ù.
½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼ Á¶°ÇºÎ ÄÄÆÄÀÏÀÌ »ç¿ëµÇ´Â ¿¹¸¦ µé¾î º¸ÀÚ. ¿öµå ÇÁ·Î¼¼¼¸¦ ¸¸µå´Âµ¥ Àü¹®°¡¿ë°ú ÀÏ¹Ý¿ë µÎ ¹öÀüÀ» ¸¸µé°í Àü¹®°¡¿ëÀº Á» ´õ °í±Þ½º·´°í °·ÂÇÑ ±â´ÉÀ» Áö¿øÇÏ´Â ´ë½Å °¡°ÝÀ» Á» ´õ ºñ½Î°Ô ¹ÞÀ¸·Á°í ÇÑ´Ù. ÀÌ·± °¡°Ý Â÷º°È Á¤Ã¥Àº ±¸¸ÅÀÚÀÇ °æÁ¦Àû ´É·Â¿¡ ¸Â´Â ´Ù¾çÇÑ ¹öÀüÀ» Á¦°øÇÔÀ¸·Î½á ÃÖ´ëÇÑÀÇ ¼öÀÍÀ» ¿Ã¸®´Â Áß¿äÇÑ ¸¶ÄÉÆÃ ±â¹ýÀÌ¸ç ¼ÒÇÁÆ®¿þ¾î ¾÷°è¿¡¼ ÈçÇÏ°Ô º¼ ¼ö ÀÖ´Ù.
ÀÌ °æ¿ì Àü¹®°¡¿ëÀº ÀÏ¹Ý¿ë ¹öÀüÀÇ ±â´ÉÀ» ¸ðµÎ °¡Áö°í Ãß°¡·Î °í±Þ ±â´ÉÀ» ´õ °¡Áö´Â ¼ÀÀ̹ǷΠÀÏ¹Ý¿ë ¹öÀüÀÇ ÄÚµå Àüü¸¦ ÇÊ¿ä·Î Çϸç ÀϹݿëÀº Àü¹®°¡¿ë ¹öÀüÀÇ ÄÚµå Áß ÀϺθ¦ »©¾ß ÇÑ´Ù. ´ëºÎºÐÀÇ Äڵ尡 Áߺ¹µÇ¹Ç·Î µÎ ¹öÀüÀÇ ÇÁ·ÎÁ§Æ®¸¦ µû·Î À¯ÁöÇÏ´Â °Íº¸´Ù´Â Â÷À̰¡ ³ª´Â ºÎºÐ¸¸ Á¶°ÇºÎ ÄÄÆÄÀÏÇÏ´Â °ÍÀÌ ÈξÀ ´õ À¯¸®ÇÏ´Ù. Àü¹®°¡¿ë¿¡¸¸ Æ÷ÇԵǴ °í±Þ ±â´ÉÀº ´ÙÀ½°ú °°ÀÌ Á¶°ÇºÎ ÄÄÆÄÀÏ ºí·Ï¿¡ ¹èÄ¡ÇÑ´Ù.
#ifdef PROFESSIONAL
°í±Þ ±â´É
#endif
Àü¹®°¡¿ë¿¡¸¸ Æ÷ÇԵǴ Äڵ带 ¸ðµÎ ÀÌ·± Á¶°ÇºÎ ÄÄÆÄÀÏ ºí·Ï¿¡ Æ÷ÇÔ½ÃÄÑ ³õÀ¸¸é ÀÌ ÄÚµåµéÀº PROFESSIONAL ¸ÅÅ©·Î »ó¼ö°¡ Á¤ÀǵǾî ÀÖÀ» ¶§¸¸ ÄÄÆÄÀ쵃 °ÍÀÌ´Ù. ¼Ò½º ¼±µÎ¿¡ #define PROFESSIONALÀ̶ó´Â ¸ÅÅ©·Î Á¤Àǹ®À» ¹Ì¸® ÀÛ¼ºÇØ ³õ°í ÀÌ´ë·Î ÄÄÆÄÀÏÇϸé Àü¹®°¡¿ë ½ÇÇà ÆÄÀÏÀÌ »ý¼ºµÇ°í ÀÌ Á¤Àǹ®À» ÁÖ¼® ó¸®ÇÑ ÈÄ ´Ù½Ã ÄÄÆÄÀÏÇÏ¸é °í±Þ ±â´ÉÀº ÄÄÆÄÀÏ ´ë»ó¿¡¼ Á¦¿ÜµÇ´Â ÀÏ¹Ý¿ë ½ÇÇà ÆÄÀÏÀÌ »ý¼ºµÈ´Ù. ¸ÅÅ©·Î Á¤Àǹ® Çϳª·Î Àüü ÄÚµåÀÇ ÄÄÆÄÀÏ ¹üÀ§¸¦ °£ÆíÇÏ°Ô ÅëÁ¦ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

#ifndef´Â #ifdef¿Í ¹Ý´ëÀÇ Á¶°ÇÀ» Á¡°ËÇÏ´Â Áö½ÃÀÚÀÌ´Ù. #ifdef´Â ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÀ» ¶§¸¸ ÄÄÆÄÀÏÇÏÁö¸¸ #ifndef´Â ¹Ý´ë·Î ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» ¶§¸¸ ÄÄÆÄÀÏÇÑ´Ù. °¡·É ÀÏ¹Ý¿ë ¹öÀü¿¡¸¸ ¾î¶² Äڵ带 ³Ö°í ½Í´Ù¸é #ifndef PROFESSIONAL ... #endif ºí·ÏÀ» ±¸¼ºÇÏ¸é µÈ´Ù. ¼Î¾î¿þ¾îÀÇ µ¥¸ð ¹öÀü¿¡ ½Ã°£ Á¦ÇÑ ±â´ÉÀ» ³Ö´Â´Ù°Å³ª ½ÇÇàÇÒ ¶§¸¶´Ù µî·Ï ´ëÈ»óÀÚ¸¦ Ãâ·ÂÇÏ¿© °øÂ¥ »ç¿ëÀÚ¸¦ ±ÍÂú°Ô ÇÏ´Â ±â´ÉµéÀº º¸Åë Á¶°ÇºÎ ÄÄÆÄÀϷΠó¸®ÇÑ´Ù.
#ifdef ~ #endif »çÀÌ¿¡ #else¸¦ ³ÖÀ» ¼öµµ Àִµ¥ ¸» ¶æ ±×´ë·Î #else ÀÌÇÏ´Â ±× ¿ÜÀÇ Á¶°ÇÀÎ °æ¿ì¸¦ ó¸®ÇÑ´Ù. ÄÚµåÀÇ Æ÷ÇÔ ¿©ºÎ»Ó¸¸ ¾Æ´Ï¶ó Á¶°Ç¿¡ µû¶ó Äڵ带 ¹Ù²ã°¡¸ç ÄÄÆÄÀÏÇÏ°í ½Í´Ù¸é #ifdef¿Í #else¸¦ °°ÀÌ »ç¿ëÇÑ´Ù. Àü¹®°¡¿ëÀÎ °æ¿ì¿Í ÀϹݿëÀÎ °æ¿ì ±â´ÉÀ» Á¶±Ý ´Ù¸£°Ô ÀÛ¼ºÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ Á¶°ÇºÎ ºí·ÏÀ» ÀÛ¼ºÇÑ´Ù.
#ifdef PROFESSIONAL
Àü¹®°¡¿ëÀÇ ÄÚµå
#else
ÀϹݿëÀÇ ÄÚµå
#endif
ÀÌ·¸°Ô Çϸé Àü¹®°¡¿ë°ú ÀϹݿëÀÇ ±â´ÉÀ» ½±°Ô Â÷º°ÈÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î Àü¹®°¡¿ë¿¡´Â ÀÚµ¿ ÀúÀå ±â´ÉÀ» ³Ö¾îÁÖ°í ÀϹݿ뿡´Â ¼öµ¿ ÀúÀå ±â´ÉÀ» ³Ö´Â´Ù°Å³ª µ¿½Ã ÆíÁý °¡´ÉÇÑ ¹®¼ÀÇ °³¼ö¸¦ ´Ù¸£°Ô ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ´Â ¾ÆÁÖ ¿©·¯ °¡Áö ¿ëµµ·Î »ç¿ëµÇ´Âµ¥ Ç¥ÁØ Çì´õ ÆÄÀÏ¿¡µµ ¹«¼öÈ÷ ¸¹Àº #ifdef¸¦ º¼ ¼ö ÀÖ´Ù. ´ÙÀ½Àº À©µµ¿ìÁîÀÇ Ç¥ÁØ Çì´õ ÆÄÀÏ¿¡ ÀÖ´Â Á¶°ÇºÎ ÄÄÆÄÀÏ ºí·ÏÀÇ ¿¹ÀÌ´Ù.
#ifdef UNICODE
LPWSTR pszValue;
#else
LPSTR pszValue;
#endif
À©µµ¿ìÁî¿ë ÇÁ·Î±×·¥Àº ANSI ¹öÀü°ú UNICODE ¹öÀüÀ¸·Î °¢°¢ ÄÄÆÄÀÏÇÒ ¼ö Àִµ¥ UNICODE ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÀ» ¶§¿Í ±×·¸Áö ¾ÊÀ» ¶§ÀÇ º¯¼ö ŸÀÔÀ» ´Ù¸£°Ô Á¤ÀÇÇÑ´Ù. ÀÌ·¸°Ô Çϸé ÇÑ ¼Ò½º·Î À¯´ÏÄÚµå¿Í ¾È½Ã¸¦ ¸ðµÎ Áö¿øÇÒ ¼ö ÀÖÀ¸¸ç Ç÷§ÆûÀ̳ª ½ÇÇà ȯ°æ¿¡ µû¶ó ¸ÅÅ©·Î Á¤Àǹ®¸¸ Á¶Á¤ÇÏ¸é µÇ¹Ç·Î À̽ļºÀ» ½±°Ô È®º¸ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â °³¹ß Áß¿¡ µð¹ö±ëÀ» À§ÇØ ÈçÈ÷ »ç¿ëÇÏ´Â ¿¹ÀÌ´Ù.
#ifdef _DEBUG
printf("º¯¼ö °ª È®ÀÎ. i=%d\n",i);
#endif
°ü½ÉÀÖ´Â º¯¼ö¸¦ ȸ鿡 Ãâ·ÂÇÏ¿© ½ÇÇàÁß¿¡ °ªÀ» È®ÀÎÇØ º¸µµ·Ï Çߴµ¥ ÀÌ Ãâ·Â¹®ÀÌ Á¶°ÇºÎ ÄÄÆÄÀÏ ºí·Ï¿¡ Æ÷ÇԵǾî ÀÖÀ¸¹Ç·Î _DEBUG ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÀ» ¶§¸¸ ÄÄÆÄÀϵȴÙ. Áï ÀÌ ÄÚµå´Â °³¹ßÁß¿¡ µð¹ö±ë ÆíÀǸ¦ À§ÇØ »ðÀÔµÈ Àӽà ÄÚµåÀÌ¸ç ½ÇÁ¦·Î ¸±¸®ÁîÇÒ ¶§´Â ÄÄÆÄÀÏÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ¸¸¾à Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚ°¡ ¾ø´Ù¸é ÀÌ·± Àӽà Äڵ带 ÀÏÀÏÀÌ ³Ö¾ú´Ù »°´Ù ÇØ¾ß ÇϹǷΠ¹«Ã´ ºÒÆíÇÒ °ÍÀÌ´Ù.
Á¶°ÇºÎ ÄÄÆÄÀÏ Áö½ÃÀÚÀÇ Á¶°ÇÀ¸·Î »ç¿ëµÇ´Â ¸ÅÅ©·Î´Â ¹°·Ð #define Àü󸮹®À¸·Î Á¤ÀÇÇϸç ÀÌ ¹®Àå ÀÚü´Â ¼Ò½º¿¡ ÀÛ¼ºµÈ´Ù. Á¶°ÇÀ» ¹Ù²Ù·Á¸é ÃÖ¼ÒÇÑ ÀÌ Á¤Àǹ®Àº ÆíÁýÇØ¾ß ÇϹǷΠÄÄÆÄÀÏ Á¶°ÇÀ» ¹Ù²Ù·Á¸é ÁÖ¼® 󸮴 ¼öµ¿À¸·Î ÇØ¾ß ÇÑ´Ù. ¼Ò½º¸¦ ÀüÇô ¼öÁ¤ÇÏÁö ¾Ê°í ÇÑ ¹úÀÇ ¼Ò½º·Î ¿©·¯ Á¾·ùÀÇ ½ÇÇà ÆÄÀÏÀ» ºôµåÇÒ ¼ö ÀÖ´Ù¸é ´õ Æí¸®ÇÒ °ÍÀÌ´Ù. ±×·¡¼ ´ëºÎºÐÀÇ ÄÄÆÄÀÏ·¯´Â ¼Ò½º°¡ ¾Æ´Ñ ¿ÜºÎ¿¡¼ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ºñÁÖ¾ó C++ 6.0ÀÇ ÇÁ·ÎÁ§Æ® ¼³Á¤ ´ëÈ»óÀÚ¸¦ º¸ÀÚ.

C/C++ÅÇÀÇ General Ä«Å×°í¸®ÀÇ Preprocessor definitions ¶õ¿¡ ÄÄÆÄÀÏÀü¿¡ ¹Ì¸® Á¤ÀÇÇÒ ¸ÅÅ©·Î »ó¼ö ¸ñ·ÏÀÌ ÀÖ´Ù. ¿©±â¿¡ ¿øÇÏ´Â ¸ÅÅ©·Î¸¦ Àû¾îÁÖ¸é ¼Ò½º´Â °Çµå¸®Áö ¾Ê°íµµ Á¶°ÇÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. ¶ÇÇÑ ºñÁÖ¾ó C++Àº ÀÌ·± ¼³Á¤ »óŸ¦ ¿©·¯ ¹ú ¸¸µé°í ÆíÁýÇÒ ¼ö ÀÖÀ¸¸ç ¹èÄ¡ ºôµå±îÁö Áö¿øÇϹǷΠÇÑ ¹ø ¼³Á¤¸¸ Àß ÇØ ³õÀ¸¸é ¿øÅÍÄ¡·Î Àü¹®°¡¿ë, ÀϹݿë, µ¥¸ð ¹öÀü, Çѱ¹¾î/¿µ¾î ¹öÀüÀ» ºôµåÇÒ ¼ö ÀÖ´Ù. ¸í·ÉÇà ÄÄÆÄÀÏ·¯µéÀº ÄÄÆÄÀÏ Àü¿¡ ¹Ì¸® ƯÁ¤ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Â ¿É¼ÇÀ» Á¦°øÇϱ⵵ ÇÑ´Ù.