¾Õ Àå¿¡¼ ¿ì¸®´Â ÀÌ¹Ì const Æ÷ÀÎÅ͸¦ Àμö·Î ¹Þ¾Æ µéÀÌ´Â ÇÔ¼ö¸¦ º» ÀûÀÌ ÀÖ¾ú´Âµ¥ ÀÌÁ¦ ÀÌ ÇÔ¼öµéÀ» ºÐ¼®ÇØ º¸ÀÚ. ´ÙÀ½ ÇÔ¼öµéÀÌ »ó¼ö Æ÷ÀÎÅ͸¦ ÃëÇÏ´Â ´ëÇ¥ÀûÀÎ ÇÔ¼öµéÀÌ´Ù.
char *strcpy(char *dest, const char *src);
int strcmp(const char *s1, const char *s2);
char *strchr(const char *string, int c);
int atoi(const char *string);
strcpy ÇÔ¼ö´Â µÎ °³ÀÇ ¹®ÀÚ¿À» Àμö·Î °¡Áö´Âµ¥ dest´Â »ó¼ö°¡ ¾Æ´Ï°í src´Â »ó¼ö·Î µÇ¾î ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â srcÀÇ ³»¿ëÀ» dest·Î ±×´ë·Î º¹»çÇϴµ¥ ÇÔ¼ö È£Ãâ ÈÄ¿¡ destÀÇ ³»¿ëÀÌ ¹Ù²î¹Ç·Î dest´Â ´ç¿¬È÷ »ó¼ö°¡ ¾Æ´Ï´Ù. ÇÏÁö¸¸ src´Â ÀÌ ÇÔ¼ö ³»ºÎ¿¡¼ Àб⸸ ÇÏ¸ç ³»¿ëÀ» º¯°æÇÏÁö ¾ÊÀ¸¹Ç·Î »ó¼ö Áö½Ã Æ÷ÀÎÅÍ·Î µÇ¾î ÀÖ´Ù. ÀÌ ÇÔ¼öÀÇ ¿øÇüÀ» º¸¸é ÇÔ¼ö°¡ ¸®ÅÏµÈ ÈÄ¿¡µµ srcÀÇ ³»¿ëÀÌ ±×´ë·Î À¯ÁöµÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ¸¸ç µû¶ó¼ ´ÙÀ½°ú °°Àº Äڵ带 ¾È½ÉÇÏ°í ¾µ ¼ö ÀÖ´Ù.
char src[32]="const pointer";
char dest[32];
strcpy(dest,src);
// È£Ãâ ÈÄ¿¡µµ src´Â ¿©ÀüÈ÷ "const pointer"¸¦ À¯ÁöÇÑ´Ù.
puts(src);
strcpy ´ÙÀ½¿¡ ÀÖ´Â puts ÇÔ¼ö È£Ãâ¿¡¼ Ãâ·ÂµÇ´Â ¹®ÀÚ¿Àº ¿©ÀüÈ÷ "const pointer"À̸ç ÀÌ ¹®ÀÚ¿À» ¹Ýº¹ÀûÀ¸·Î °è¼Ó »ç¿ëÇØµµ µÈ´Ù. ±×·¯³ª dest´Â strcpy È£Ãâ ÈÄ¿¡ °ªÀÌ º¯ÇÒ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®¿¡ ´ÙÀ½°ú °°Àº È£Ãâ¹®Àº ¿¡·¯·Î 󸮵ȴÙ.
const char *dest="»ó¼ö Æ÷ÀÎÅÍ";
strcpy(dest,"const pointer");
strcpy ÇÔ¼öÀÇ dest Àμö´Â ÀÏ¹Ý Æ÷ÀÎÅÍÀε¥ »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ Àμö·Î ³Ñ°å´Ù. Àμö Àü´Þ °úÁ¤¿¡¼ ´ëÀÔ ¿¬»êÀÌ ÀϾ´Âµ¥ ÀÏ¹Ý Æ÷ÀÎÅÍ´Â »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ ´ëÀÔ¹ÞÀ» ¼ö ¾øÀ¸¹Ç·Î Á¦´ë·Î ÄÄÆÄÀϵÇÁö ¾Ê´Â °ÍÀÌ´Ù. strcmp ÇÔ¼ö´Â ¹®ÀÚ¿À» ºñ±³¸¸ ÇÏ°í º¯°æÀº ÇÏÁö ¾ÊÀ¸¹Ç·Î µÎ Àμö°¡ ¸ðµÎ »ó¼ö Áö½Ã Æ÷ÀÎÅÍÀÌ´Ù. strchr ÇÔ¼öµµ ¹®ÀÚ¿ °Ë»ö¸¸ ÇϹǷΠ»ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ Àμö·Î ÃëÇϸç atoi ÇÔ¼öµµ ¹®ÀÚ¿¿¡ ÀúÀåµÈ °ªÀ» Àб⸸ ÇÑ´Ù.
±×·¯³ª strchr ÇÔ¼öÀÇ µÎ ¹øÂ° Àμö int c¾Õ¿¡´Â const°¡ ºÙ¾î ÀÖÁö ¾Ê´Ù. ³í¸®»ó °Ë»öÀ» À§ÇØ Àü´ÞµÇ´Â ¹®ÀÚµµ Àбâ Àü¿ëÀ̹ǷΠconst int c¶ó°í ÇØ¾ß ¿Ç°ÚÁö¸¸ »ó¼ö°¡ ¾Æ´Ñ º¯¼ö·Î Àü´Þ¹Þ´Â´Ù. ÀÌ·¸°Ô µÇ¸é strchr ÇÔ¼ö ³»ºÎ¿¡¼ cÀÇ °ªÀ» ÇԺηΠ¹Ù²Ü ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù. ±×·¯³ª ÀÌ °æ¿ì´Â °ª¿¡ ÀÇÇÑ Àü´ÞÀ̹ǷΠstrcpy ÇÔ¼ö ³»ºÎ¿¡¼ ¾Æ¹«¸® c¸¦ ¹Ù²ã ºÁ¾ß ½ÇÀμö¸¦ ¹Ù²Ü ¼ö´Â ¾øÀ¸¹Ç·Î À§ÇèÇÏÁö ¾Ê´Ù. constÀμö°¡ ²À ÇÊ¿äÇÑ °æ¿ì´Â Æ÷ÀÎÅ͸¦ ÅëÇÑ ÂüÁ¶ È£ÃâÀÏ ¶§ »ÓÀÌ¸ç °ª È£ÃâÀÏ ¶§´Â Å« Àǹ̰¡ ¾ø´Ù.
Ç¥ÁØ ÇÔ¼öµéÀº ÀÚ½ÅÀÌ Àü´Þ¹ÞÀº Æ÷ÀÎÅÍÀÇ ´ë»óü¸¦ º¯°æÇÏÁö ¾ÊÀ» ¶§ Ç×»ó const·Î Àμö¸¦ Àü´Þ¹Þµµ·Ï µÇ¾î ÀÖ´Ù. ÀÌ´Â ÇÔ¼ö ³»ºÎ¿¡¼ ÀμöÀÇ °ªÀ» ¹Ù²ÙÁö ¾Ê´Â´Ù´Â °ÍÀ» ¸íÈ®È÷ Ç¥½ÃÇϸç ÇÔ¼ö È£ÃâºÎ¿¡¼ const·Î Àü´ÞµÈ ÀμöÀÇ °ªÀ» ¾È½ÉÇϰí Àç»ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. »ç¿ëÀÚ°¡ Á÷Á¢ ÇÔ¼ö¸¦ ¸¸µé ¶§µµ º¯°æÇÒ Çʿ䰡 ¾ø´Â Àμö´Â °¡±ÞÀûÀ̸é const·Î Àü´Þ¹Þ´Â °ÍÀÌ ÁÁ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.
|
¿¹ Á¦ : ConstArg |
#include <Turboc.h>
void DoSelect(const char *szSQL)
{
// Äõ¸® ½ÇÇà
}
void main()
{
char szSQL[128];
strcpy(szSQL,"select * from tblGirl where height > 165");
DoSelect(szSQL);
strcat(szSQL," and weight < 55");
DoSelect(szSQL);
}
DoSelect ÇÔ¼ö´Â szSQLÀμö·Î Àü´ÞµÈ Äõ¸®¹®À» ½ÇÇàÇÏ´Â °¡»óÀÇ ÇÔ¼öÀε¥ Äõ¸®¹®À» Àб⸸ ÇϹǷΠ»ó¼ö Áö½Ã Æ÷ÀÎÅÍ·Î Àü´Þ¹Þµµ·Ï Çß´Ù. ¸¸¾à DoSelect ÇÔ¼ö ³»ºÎ¿¡¼ ½Ç¼ö·Î szSQL[0]='t'¶ó´Â ´ëÀÔ ¿¬»êÀ» Çϰųª strcpy(szSQL, "insert"); ¶ó´Â ÇÔ¼ö¸¦ È£ÃâÇϸé ÀμöÀÇ Å¸ÀÔÀÌ ´Þ¶ó¼ ¿¡·¯·Î 󸮵Ǹç DoSelect ³»ºÎ¿¡¼´Â szSQLÀ» ¹Ù²Ù°í ½Í¾îµµ ¹Ù²Ü ¼ö°¡ ¾ø´Ù. ±×·¡¼ main ¿¡¼´Â DoSelect¸¦ ºÎ¸¥ ÈÄ ÀÌ Äõ¸®¹®ÀÇ ³»¿ëÀ» Á¶±Ý º¯°æÇÑ ÈÄ ´Ù½Ã DoSelect¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¸¸¾à DoSelectÀÇ Àμö°¡ »ó¼ö Áö½Ã Æ÷ÀÎÅͰ¡ ¾Æ´Ï¶ó¸é main ÇÔ¼ö¿¡¼´Â ´ÙÀ½Ã³·³ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.
strcpy(szSQL,"select * from tblGirl where height > 165");
DoSelect(szSQL);
strcpy(szSQL,"select * from tblGirl where height > 165 and weight < 55");
DoSelect(szSQL);
DoSelect ÇÔ¼ö¿¡¼ szSQLÀ» º¯°æÇß´ÂÁö ¾Æ´ÑÁö¸¦ Á¤È®ÇÏ°Ô ¾Ë ¼ö ¾ø±â ¶§¹®¿¡ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§´Â Ç×»ó Äõ¸®¹®À» óÀ½ºÎÅÍ ´Ù½Ã ÀÛ¼ºÇØ¾ß Çϸç szSQLÀ» ¸¶À½³õ°í Àç»ç¿ëÇÏÁö ¸øÇÑ´Ù. Äõ¸®¹®ÀÌ ±æ¾îÁö¸é À̰ÍÀº ¹«Ã´ ¹ø°Å·Î¿î ÀÏÀÌ´Ù. ±×·¸´Ù¸é DoSelect ÇÔ¼ö¸¦ ±×³É ÀÏ¹Ý Æ÷ÀÎÅ͸¦ Àμö·Î ¹Þµµ·Ï ¼öÁ¤ÇÏ¸é ¾î¶»°Ô µÉ±î?
void DoSelect(char *szSQL)
{
// Äõ¸® ½ÇÇà
}
ÀÌ·¸°Ô ¼öÁ¤Çصµ µ¿ÀÛ¿¡´Â ¾Æ¹«·± ÁöÀåÀÌ ¾øÁö¸¸ ¹Ýµå½Ã »ó¼ö°¡ ¾Æ´Ñ Æ÷ÀÎÅ͸¸ ³Ñ°Ü¾ß ÇÑ´Ù´Â Á¦¾àÀÌ »ý±ä´Ù. µû¶ó¼ ´ÙÀ½°ú °°ÀÌ »ó¼ö Æ÷ÀÎÅ͸¦ Àμö·Î ³Ñ±æ ¼ö ¾ø´Ù.
const char *szSQL="select * from tblGirl";
DoSelect(szSQL);
DoSelect ÇÔ¼ö°¡ main¿¡¼¸¸ È£ÃâµÈ´Ù¸é ¾î¶»°Ô ÇÏ´õ¶óµµ Å« Â÷À̰¡ ¾øÁö¸¸ ´Ù¸¥ ÇÔ¼öµé°úÀÇ °ü°è±îÁö °í·ÁÇÑ´Ù¸é ¿øÄ¢´ë·Î »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ ¹Þ¾Æ µéÀÌ´Â °ÍÀÌ ´õ ÁÁ´Ù. ¸¸¾à DoQuery³ª PrintAllGirl°°ÀÌ »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ Àμö·Î ¹Þ´Â ´Ù¸¥ ÇÔ¼ö¿¡¼ DoSelect¸¦ È£ÃâÇØ¾ß ÇÑ´Ù¸é DoSelectµµ »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ Àμö·Î ¹Þ¾Æ¾ß ÇÑ´Ù. ¾Æ´Ï¸é ¸ðµç ÇÔ¼öµéÀÌ ÀÏ¹Ý Æ÷ÀÎÅ͸¦ ¹Þ¾ÆµéÀ̵µ·Ï Àü¸é ¼öÁ¤ÇØ¾ß Çϴµ¥ ÀÌ·¸°Ô µÇ¸é ¹ø°Å·Î¿ï »Ó¸¸ ¾Æ´Ï¶ó ¿©·¯ ¸ð·Î À§ÇèÇØÁø´Ù. »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ ¹ÞÀº ÇÔ¼ö°¡ ÀÏ¹Ý Æ÷ÀÎÅ͸¦ ÃëÇÏ´Â ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÏ´Â °æ¿ì´Â ¾ø´Ù. ¸¸¾à ÀÖ´Ù¸é ÇÔ¼ö ¼³°è¸¦ À߸øÇÑ °ÍÀÌ´Ù.
const´Â ¿ì¹ßÀûÀÎ ÄÚµå·ÎºÎÅÍ Áß¿äÇÑ °ªÀ» º¸È£ÇÏ´Â ¹®¹ýÀû ÀåÄ¡À̹ǷΠ¾ÈÀü¼ºÀ» À§ÇØ Àû±Ø Ȱ¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀϺΠÄÚµå´Â const¸¦ ¾²°í ÀϺΠÄÚµå´Â ¾²Áö ¾ÊÀ¸¸é ŸÀÔÀÌ ¸ÂÁö ¾Ê¾Æ Àμö Àü´ÞÀÌ ¿øÈ°ÇÏÁö ¸øÇÑ ºÎÀÛ¿ëÀÌ ÀÖ´Ù. ƯÈ÷ ÆÀ ÇÁ·ÎÁ§Æ®ÀÇ °æ¿ì ¼·ÎÀÇ ½ºÅ¸ÀÏÀÌ Æ²¸®¸é °ñ ¶§¸®´Â »óȲÀÌ ¹ß»ýÇÒ ¼ö Àִµ¥ ÀÌ·± °æ¿ì´Â °¡±ÞÀû ¿øÄ¢´ë·Î const¸¦ öÀúÇÏ°Ô ÁöŰ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡¼´Â const°¡ ´õ¿í Áß¿äÇÑ ¿ªÇÒÀ» Çϴµ¥ const·Î ÁöÁ¤µÈ ¸â¹ö ÇÔ¼ö´Â Ŭ·¡½º ³»ºÎ¸¦ ÇԺηΠº¯°æÇÒ ¼ö ¾øÀ¸¹Ç·Î °´Ã¼ÀÇ ¾ÈÀü¼ºÀ» ÁöŰ´Â Áß¿äÇÑ ¿ªÇÒÀ» ÇÑ´Ù.