18-2-¸¶.¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î

¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î(Predefined Macro)´Â ÄÄÆÄÀÏ·¯°¡ Á¦°øÇÏ´Â ¸ÅÅ©·ÎÀÌ´Ù. ÁÖ·Î ÄÄÆÄÀÏ·¯°¡ ÇöÀç »óȲÀ̳ª ÄÄÆÄÀÏÁß¿¡ Âü°íÇÒ¸¸ÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ±â À§ÇÑ ¿ëµµ·Î »ç¿ëÇÑ´Ù. #defineÀ¸·Î Á¤ÀÇÇÏÁö ¾Ê¾Æµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÀçÁ¤ÀÇÇÒ ¼öµµ ¾ø´Ù. ÇÊ¿äÇÒ ¶§ ÂüÁ¶ÇÏ¿© Á¤º¸¸¦ Á¶»çÇÒ ¼ö¸¸ ÀÖ´Â Àбâ Àü¿ë ¸ÅÅ©·Î »ó¼ö¶ó°í »ý°¢ÇÏ¸é µÈ´Ù.

 

¸ÅÅ©·Î¸í

¼³¸í

__DATE__

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

__TIME__

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

__TIMESTAMP__

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

__FILE__

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

__LINE__

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

__STDC__

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

 

ÀÌ ¸ÅÅ©·ÎµéÀ» ÂüÁ¶Çϸé ÄÄÆÄÀ쵃 ¶§ÀÇ ³¯Â¥, ½Ã°£, ¼Ò½º ÆÄÀϸí, ÁÙ ¼ö µîÀÇ ¿©·¯ °¡Áö Á¤º¸µéÀ» ÄÄÆÄÀÏ Áß¿¡ ±¸Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸ÅÅ©·Î¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¿¹Á¦¸¦ º¸ÀÚ. ¸ÅÅ©·ÎÀÇ °ªÀ» Ãâ·ÂÇØ º¸±â¸¸ Çß´Ù.

 

¿¹ Á¦ : PreDefMacro

#include <Turboc.h>

 

void 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

}

 

½ÇÇà °á°ú´Â ´ÙÀ½°ú °°Àºµ¥ ÄÄÆÄÀÏÇÒ ¶§ÀÇ ³¯Â¥¿Í ½Ã°£Àº ¸Å¹ø ´Þ¶óÁú °ÍÀÌ´Ù.

 

¿À´ÃÀº Jun 16 2004ÀÌ°í  ÃÖÈÄ ÄÄÆÄÀÏµÈ ½Ã°£Àº 09:34:50ÀÔ´Ï´Ù.

ÀÌ ÆÄÀÏÀÌ ÃÖÁ¾ ¼öÁ¤µÈ ½Ã°£Àº Wed Jun 16 09:34:50 2004ÀÔ´Ï´Ù.

ÀÌ ÆÄÀÏÀº C:\CExam\CExam\PreDefMacro.cppÀÌ°í ÀÌ ÁÙÀº 7ÀÔ´Ï´Ù.

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

 

ÀÌ ¸ÅÅ©·ÎµéÀº È°¿ëÇϱ⿡ µû¶ó¼­ ¿©·¯ °¡Áö ¿ëµµ°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î ½ÇÇàÁß¿¡ µð¹ö±ë Á¤º¸¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö(assert)¿¡¼­ __FILE__, __LINE__À» »ç¿ëÇϸé ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â °÷ÀÇ ¼Ò½º ÆÄÀÏ°ú ±× À§Ä¡¸¦ ½±°Ô Ãâ·ÂÇÒ ¼ö ÀÖÀ¸¸ç ³¯Â¥³ª ½Ã°£ Á¤º¸´Â ¼Ò½ºÀÇ ¹öÀü °ü¸®¿¡ È°¿ëµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½Àº ºñÁÖ¾ó C++ ÄÄÆÄÀÏ·¯°¡ Á¦°øÇÏ´Â ¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·ÎµéÀÌ´Ù. Ç¥ÁØÀº ¾Æ´Ï¹Ç·Î ´Ù¸¥ ÄÄÆÄÀÏ·¯¿¡¼­´Â ¾øÀ» ¼öµµ ÀÖ´Ù.

 

¸ÅÅ©·Î¸í

¼³¸í

_DEBUG

µð¹ö±× ¸ðµå·Î ÄÄÆÄÀÏÁßÀÏ ¶§¸¸ Á¤ÀǵȴÙ.

__cplusplus

C++ ¸ðµå·Î ÄÄÆÄÀÏÁßÀÏ ¶§¸¸ Á¤ÀǵȴÙ.

_DLL

DLL ÇÁ·ÎÁ§Æ®ÀÏ ¶§¸¸ Á¤ÀǵȴÙ.

_MSC_VER

ºñÁÖ¾ó C++ÀÇ ÄÄÆÄÀÏ·¯ ¹öÀüÀ» ³ªÅ¸³½´Ù. 6.0Àº 1200À¸·Î Á¤ÀǵǸç 7.0(´å³Ý)Àº 1300À¸·Î Á¤ÀǵȴÙ.

_MFC_VER

MFC ¶óÀ̺귯¸®ÀÇ ¹öÀü°ª

_ATL_VER

ATLÀÇ ¹öÀü°ª

_WIN32

Win32 ȯ°æÀÏ ¶§ Á¤ÀǵȴÙ.

_WIN64

Win64 ȯ°æÀÏ ¶§ Á¤ÀǵȴÙ.

__COUNTER__

ÂüÁ¶µÉ ¶§¸¶´Ù 1¾¿ Áõ°¡ÇÏ´Â Á¤¼ö°ªÀÌ´Ù. À¯ÀÏÇÑ À̸§À» ¸¸µé°íÀÚ ÇÒ ¶§ ÀÌ ¸ÅÅ©·Î¸¦ »ç¿ëÇÑ´Ù. 7.0 À̻󿡼­¸¸ Á¦°øµÈ´Ù.

_M_ALPHA, _M_IX86, _M_IA64, _M_MPPC

CPUÀÇ Á¾·ùÀÌ´Ù. Ç÷§Æû¿¡ µû¶ó ¾à°£¾¿ Äڵ尡 ´Þ·ÁÁ®¾ß ÇÒ ¶§ ÀÌ ¸ÅÅ©·Î¸¦ ÂüÁ¶ÇÑ´Ù.

 

ÀÌ Áß ÀϺδ ÀÌ¹Ì »ç¿ëÇØ º» Àûµµ ÀÖÀ» °ÍÀÌ°í Ç¥ÁØ Çì´õ ÆÄÀÏ¿¡¼­µµ ½É½ÉÄ¡¾Ê°Ô È°¿ë¿¹¸¦ º¼ ¼ö ÀÖ´Ù. ƯÈ÷ _DEBUG ¸ÅÅ©·Î´Â µð¹ö±× ¹öÀü°ú ¸±¸®Áî ¹öÀüÀÇ Äڵ带 ´Ù¸£°Ô ÀÛ¼ºÇÒ ¶§ ÈçÇÏ°Ô »ç¿ëµÈ´Ù. ÄÄÆÄÀÏ·¯ ¹öÀüÀ̳ª Ç÷§Æû, ¿î¿µÃ¼Á¦ ȯ°æ¿¡ µû¶ó ´Ù¸¥ Äڵ尡 ÇÊ¿äÇÏ´Ù¸é ÀÌ ¸ÅÅ©·ÎµéÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù.