18-3-´Ù.warning

ÄÄÆÄÀÏ·¯´Â ÄÄÆÄÀÏÇÑ °á°ú¸¦ ¿¡·¯¿Í °æ°í¶ó´Â Áø´Ü ¸Þ½ÃÁö·Î Ãâ·ÂÇÑ´Ù. ¸ðµç ¹®¹ýÀÌ Á¤È®ÇÏ´Ù¸é ¾Æ¹«·± Áø´Ü ¸Þ½ÃÁöµµ Ãâ·ÂµÇÁö ¾ÊÁö¸¸ »ç¶÷ÀÌ ÄÄÇ»ÅͰ¡ ¾Æ´Ñ ÇÑ º¸ÅëÀº ÇÑ µÎ °³ Á¤µµÀÇ ¸Þ½ÃÁö¸¦ ¹Þ°Ô µÈ´Ù. ÀÌ Áß ¿¡·¯´Â ¸í¹éÇÏ°Ô Æ²¸° °ÍÀ̹ǷΠ¹Ýµå½Ã ¼öÁ¤ÇÑ ÈÄ Àç ÄÄÆÄÀÏÇØ¾ß Çϳª °æ°í´Â °æ¿ì¿¡ µû¶ó Âü°í¸¸ ÇÏ°í ¹«½ÃÇØµµ »ó°ü¾ø´Ù. ´ÙÀ½ ¿¹Á¦´Â º° Ưº°ÇÑ µ¿ÀÛÀº ÇÏÁö ¾ÊÁö¸¸ ÀǵµÀûÀ¸·Î °æ°í¸¦ ¸¹ÀÌ ¹Þµµ·Ï ÀÛ¼ºÇØ º» °ÍÀÌ´Ù.

 

¿¹ Á¦ : Warning

#include <Turboc.h>

 

void main()

{

     int i,j,k;

     unsigned u,v=1234;

     double d=3.14;

 

     i=u;

     if (i = 3) {

          i=d;

     }

     if (i == v) {

          switch (i) {

          }

     }

}

 

ÄÄÆÄÀÏÇÏ¸é ´ÙÀ½ ¿©¼¸ °³ÀÇ °æ°í ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù. ¾îµð±îÁö³ª °æ°íÀÏ »ÓÀ̹ǷΠÄÄÆÄÀÏÀº ÀÏ´Ü ¼º°øÇÑ´Ù. ¿¡·¯´Â Çϳª¶óµµ ÀÖÀ¸¸é ½ÇÇà ÆÄÀÏÀ» ¸¸µé ¼ö ¾øÁö¸¸ °æ°í¸¸ ÀÖ´Â »óÅ¿¡¼­´Â ½ÇÇà ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Ù.

 

warning C4101: 'j' : unreferenced local variable

warning C4101: 'k' : unreferenced local variable

warning C4700: local variable 'u' used without having been initialized

warning C4244: '=' : conversion from 'double' to 'int', possible loss of data

warning C4018: '==' : signed/unsigned mismatch

warning C4060: switch statement contains no 'case' or 'default' labels

 

°æ°í´Â ½É°¢ÇÑ Á¤µµ¿¡ µû¶ó 1~4´Ü°è±îÁö ·¹º§ÀÌ ºÐ·ùµÇ¾î Àִµ¥ ºñÁÖ¾ó C++Àº µðÆúÆ®·Î ·¹º§ 3±îÁöÀÇ °æ°í¸¦ Ãâ·ÂÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÇÁ·ÎÁ§Æ® ¼³Á¤ ´ëÈ­»óÀÚÀÇ C/C++ ÆäÀÌÁö¿¡¼­ °æ°í ·¹º§À» 4´Ü°è·Î ³ôÀÌ¸é ´ÙÀ½ Ãß°¡ °æ°í°¡ Çϳª ´õ ¹ß»ýÇÑ´Ù.

 

warning C4706: assignment within conditional expression

 

°¢ °æ°íÀÇ Àǹ̴ ¿µ¹®À¸·Î ª°Ô ¼³¸íµÇ¾î ÀÖÀ¸¸ç C4101ó·³ ¹øÈ£°¡ ºÙ¾î Àִµ¥ Á¶±Ý ´õ ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇØ º¸¸é ´ÙÀ½°ú °°´Ù. MSDNÀÇ À妽ºÃ¢¿¡¼­ C4101À» °Ë»öÇÏ¸é °æ°í°¡ ¹ß»ýÇÑ ¿øÀο¡ ´ëÇÑ »ó¼¼ÇÑ ¼³¸íÀ» ÀÐÀ» ¼ö ÀÖ´Ù.

 

¡á C4101 : »ç¿ëÇÏÁöµµ ¾ÊÀº Áö¿ªº¯¼ö¸¦ ¼±¾ðÇß´Ù´Â ¶æÀÌ´Ù. ¾µµ¥ ¾ø´Â º¯¼öÀ̹ǷΠ¼±¾ð¹®À» »èÁ¦ÇÏ´Â °ÍÀÌ ¿ÇÁö¸¸ ÄÄÆÄÀÏÇϴµ¥ ÁöÀåÀº ¾øÀ¸¹Ç·Î °æ°í·Î 󸮵ȴÙ. ¿¹Á¦ÀÇ j, k º¯¼ö´Â ¼±¾ð¸¸ ÇÏ°í ½ÇÁ¦ Äڵ忡¼­´Â ¾²Áö ¾Ê°í ÀÖ´Ù.

¡á C4700 : Áö¿ªº¯¼ö¸¦ ÃʱâÈ­ÇÏÁö ¾Ê°í »ç¿ëÇß´Ù´Â ¶æÀÌ´Ù. ÀÌ °æ¿ì ¾²·¹±â°ªÀ» ±×´ë·Î »ç¿ëµÇ´Âµ¥ ÀÏ´Ü °¡´ÉÀº ÇÏÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì ¸»½éÀ» ÀÏÀ¸Å²´Ù. ¿¹Á¦¿¡¼­ i¿¡ ÃʱâÈ­ÇÏÁö ¾ÊÀº u¸¦ ´ëÀÔÇϴµ¥ À̶§ uÀÇ °ªÀÌ ¹«¾ùÀÎÁö´Â ¾Ë ¼ö ¾øÀ¸¹Ç·Î iµµ °°ÀÌ ¾²·¹±â°ªÀÌ °¡Áö°Ô µÉ °ÍÀÌ´Ù.

¡á C4244 : i=d ´ëÀÔ¹®¿¡ ÀÇÇØ i¿¡ 3ÀÌ ´ëÀԵǴµ¥ ÀÌ °úÁ¤¿¡¼­ Çϰ­ º¯È¯ÀÌ ¹ß»ýÇØ¼­ ¼Ò¼öÁ¡ ÀÌÇÏ 0.14°¡ ¹ö·ÁÁø´Ù´Â ¶æÀÌ´Ù. ¸¸¾à °³¹ßÀÚ°¡ ½Ç¼ö°ªÀÇ Á¤¼öºÎ¸¸À» ´ëÀÔ¹Þ°íÀÚ Çß´Ù¸é À̰ÍÀº ¿ÇÀº ´ëÀÔÀÌÁö¸¸ ±×·¸Áö ¾Ê´Ù¸é ÀϺΠÁ¤º¸¸¦ ÀÒÀ» ¼ö ÀÖÀ¸¹Ç·Î °æ°í·Î ó¸®ÇÑ´Ù.

¡á C4018 : ºÎÈ£ÀÖ´Â º¯¼ö¿Í ºÎÈ£¾ø´Â º¯¼ö¸¦ »óµî ¿¬»êÇßÀ¸¹Ç·Î Á¿ìÀÇ Å¸ÀÔÀÌ ¸ÂÁö ¾Ê´Ù´Â ¶æÀÌ´Ù. i¿Í v´Â ºÎÈ£ ¿©ºÎ°¡ ´Ù¸£¹Ç·Î ¶§·Î´Â Ʋ¸° ºñ±³¸¦ ÇÒ ¼öµµ ÀÖ´Ù.

¡á C4060 : switch¹®ÀÇ case°¡ ÀüÇô ¾ø¾î ÀÌ switch ¹® ÀÚü°¡ ÀÖÀ¸³ª ¸¶³ªÇÑ ¹®ÀåÀ̶ó´Â ¶æÀÌ´Ù. ÀϺη¯ ÀÌ·± Äڵ带 ¸¸µéÁö´Â ¾Ê°ÚÁö¸¸ °³¹ß Áß¿¡ case¸¦ ÆíÁýÇÏ´Ù º¸¸é ²®µ¥±â¸¸ ³²´Â °æ¿ì°¡ °¡²û Àִµ¥ ÀÌ·± °æ°í¸¦ ¹Þ¾ÒÀ¸¸é ºó switch ¹®À» »èÁ¦Çϵ簡 ¾Æ´Ï¸é case¸¦ ÀÛ¼ºÇØ¾ß ÇÑ´Ù.

¡á C4706 : Á¶°Ç¹®¿¡ ´ëÀÔ ¿¬»êÀÚ¸¦ »ç¿ëÇß´Ù´Â °æ°íÀÌ´Ù. C ¹®¹ýÀº Á¶°Ç¹®À» °ü°è ¿¬»ê¹®À¸·Î Á¦ÇÑÇÏÁö ¾ÊÀ¸¹Ç·Î ´ëÀÔ¹®À» »ç¿ëÇÏ´Â °Íµµ Àû¹ýÇÏ´Ù. ±×·¯³ª ==À» =·Î À߸ø ¾²´Â ½Ç¼ö¸¦ ÈçÈ÷ Çϱ⠶§¹®¿¡ °æ°í·Î ÀÌ »ç½ÇÀ» ¾Ë·Á ÁØ´Ù. ÀÌ °æ°í´Â ·¹º§ 4·Î ÀϹÝÀûÀÎ °æ°íº¸´Ù ¼öÁØÀÌ ³·´Ù.

 

°³¹ßÀÚ´Â ÀÌ·± °æ°í ¸Þ½ÃÁö¸¦ º¸°í ÀÚ½ÅÀÇ Äڵ尡 À߸øµÇ¾ú´ÂÁö Á¡°ËÇØ º¸°í ÄÄÆÄÀÏ·¯ÀÇ °æ°í´ë·Î Äڵ带 ¼öÁ¤Çϰųª ¾Æ´Ï¸é º° ÀÌ»óÀÌ ¾øÀ» °æ¿ì °æ°í¸¦ ¹«½ÃÇÒ °ÍÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â °³¹ßÀÚÀÇ ½Ç¼ö³ª ¶Ç´Â ȣȯ¼º ¹®Á¦, ¼º´É»óÀÇ ¹®Á¦ µîÀ» ÁöÀûÇϱâ À§ÇØ °æ°í ¸Þ½ÃÁö·Î Ãæ°í¸¦ ÇÏ´Â °ÍÀÌ´Ù. ±×·±µ¥ ¶§·Î´Â ÀÌ·± Ä£ÀýÇÑ °æ°í ¸Þ½ÃÁö°¡ ¹«Ã´ ±ÍÂúÀ» ¶§µµ ÀÖ´Ù.

¿¹¸¦ µé¾î »ç¿ëÇÏÁö ¾Ê´Â Áö¿ªº¯¼öÀÇ °æ¿ì ÀÖ´Ù°í ÇØ¼­ º°´Ù¸¥ ÇØ¸¦ ³¢Ä¡Áö ¾ÊÀ¸¸ç Àá½Ã ÈÄ ¾µ °èȹÀ̶ó¸é ÀÌ·± °æ°í°¡ º° µµ¿òÀÌ µÇÁöµµ ¾Ê°í ±ÍÂú±â¸¸ ÇÒ »ÓÀÌ´Ù. ±×³É ¹«½ÃÇØ ¹ö¸± ¼öµµ ÀÖÁö¸¸ ÀÌ·± °æ°í ¶§¹®¿¡ Á¤ÀÛ Àоî¾ß ÇÒ Áß¿äÇÑ ¿¡·¯ ¸Þ½ÃÁö¸¦ ³õÄ¥ ¼öµµ ÀÖ´Ù. ÀÌ·± »ç¼ÒÇÑ ¹®Á¦¿¡ ´ëÇØ¼­´Â ÄÄÆÄÀÏ·¯°¡ ´õ Âü°ßÇÏÁö ¸»¾ÒÀ¸¸é ÇÏ´Â »ý°¢ÀÌ µé ¶§°¡ ÀÖ´Ù. ¶ÇÇÑ ¹Ý´ë·Î ¾î¶² °æ°í´Â ¾ÆÁÖ Áß¿äÇØ¼­ °æ°í°¡ ¾Æ´Ñ ¿¡·¯·Î ºÐ¸íÈ÷ ¾Ë·Á ÁáÀ¸¸é ÇÏ´Â °æ¿ìµµ ÀÖÀ» °ÍÀÌ´Ù. ÄÄÆÄÀÏ·¯°¡ °æ°í¸¦ Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» ¹Ù²Ù°í ½Í´Ù¸é ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÑ´Ù.

 

#pragma warning(°æ°íÁ¦¾î¹®:°æ°í¹øÈ£)

 

°æ°í Á¦¾î¹®ÀÇ Á¾·ù´Â ´ÙÀ½°ú °°À¸¸ç Á¦¾î¹® ´ÙÀ½¿¡ : °ú ÇÔ²² ´ë»ó °æ°íÀÇ ¹øÈ£¸¦ Àû´Â´Ù. °æ°í ¹øÈ£´Â °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ¿©·¯ °³¸¦ ³ª¿­ÇÒ ¼ö ÀÖÀ¸¸é °æ°í Á¦¾î¹®µµ ÄÝ·ÐÀ¸·Î ±¸ºÐÇÏ¿© ¿©·¯ °³¸¦ ³ª¿­ÇÒ ¼ö ÀÖ´Ù.

 

Á¦¾î¹®

¼³¸í

once:¹øÈ£

¹Ýº¹µÇ´Â °æ°í¸¦ ÇÑ ¹ø¸¸ Ãâ·ÂÇÑ´Ù.

default:¹øÈ£

¿ø·¡ ¼³Á¤´ë·Î µÇµ¹¸°´Ù.

disable:¹øÈ£

°æ°í¸¦ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.

error:¹øÈ£

°æ°í¸¦ ¿¡·¯·Î ó¸®ÇÑ´Ù.

·¹º§:¹øÈ£

°æ°íÀÇ ·¹º§(1~4)À» º¯°æÇÑ´Ù.

push[,n]

¸ðµç °æ°íÀÇ ·¹º§À» ÀúÀåÇÑ´Ù. nÀÌ ÀÖÀ» °æ¿ì ÀúÀå°ú µ¿½Ã¿¡ Àü¿ª °æ°í ·¹º§À» nÀ¸·Î º¯°æÇÑ´Ù.

pop

½ºÅÿ¡ ¸¶Áö¸·À¸·Î ÀúÀåµÈ °æ°í ·¹º§À» º¹¿øÇÑ´Ù.

 

¼Ò½ºÀÇ ¾î´À À§Ä¡¿¡³ª ´ÙÀ½ ¸í·ÉÀ» »ðÀÔÇϸé ÀÌÈĺÎÅÍ ÄÄÆÄÀÏ·¯°¡ °æ°í¸¦ ÅëÁ¦ÇÏ´Â ¹æ¹ýÀÌ ¹Ù²ï´Ù.

 

#pragma warning (disable:4101)            // °æ°í¸¦ ¹«½ÃÇϵµ·Ï ÇÑ´Ù.

#pragma warning (once:4101)          // 4101°æ°í¸¦ ÇÑ ¹ø¸¸ Ãâ·ÂÇÑ´Ù.

#pragma warning (error:4700)               // °æ°í ´ë½Å ¿¡·¯¸¦ Ãâ·ÂÇÑ´Ù.

#pragma warning (3:4706)                // 4706¹ø °æ°í¸¦ ·¹º§ 3À¸·Î ¿Ã¸°´Ù.

 

disable:4101Àº ¹Ì»ç¿ë Áö¿ªº¯¼ö¿¡ ´ëÇÑ °æ°í¸¦ ¾Æ¿¹ ¹«½ÃÇϵµ·Ï ÇÑ´Ù. Áö¿ªº¯¼ö¸¦ ¾²°Ç ¸»°Ç °£¼·ÇÏÁö ¸»¶ó´Â ¾ê±â´Ù. ÀÌ ¸í·ÉÀ» »ç¿ëÇÏ¸é ¹Ì»ç¿ë Áö¿ªº¯¼ö¿¡ ´ëÇÑ °æ°í´Â ´õ ÀÌ»ó Ãâ·ÂµÇÁö ¾Ê´Â´Ù. once:4101Àº ÀÌ °æ°í¸¦ µü ÇÑ ¹ø¸¸ Ãâ·ÂÇ϶ó´Â ¶æÀε¥ ºñ½ÁÇÑ °æ°í°¡ ³Ê¹« ¸¹ÀÌ ¹Ýº¹µÉ ¶§´Â ÀÌ ¸í·ÉÀ¸·Î ¹Ýº¹µÈ Ãâ·ÂÀ» ÇÑ ¹øÀ¸·Î Á¦ÇÑÇÑ´Ù. ¿¹Á¦¿¡ j, k µÎ °³ÀÇ ¹Ì»ç¿ë Áö¿ªº¯¼ö°¡ Àִµ¥ j¿¡ ´ëÇØ¼­¸¸ °æ°íÇϰí k´Â °æ°íÇÏÁö ¾Ê´Â´Ù.

error:4700Àº ÀÌ °æ°í¸¦ ¾Æ¿¹ ¿¡·¯Ã³·³ Ãë±ÞÇ϶ó´Â ¶æÀÌ´Ù. Áö¿ªº¯¼ö¸¦ ÃʱâÈ­ÇÏÁö ¾ÊÀº »óÅ·Π¾²·¹±â°ªÀ» ¹Ù·Î ¾µ °æ¿ì ½É°¢ÇÑ ¹®Á¦°¡ µÉ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ·± ½Ç¼ö¸¦ ÇÏ¸é ¿¡·¯·Î ÁöÀûÇØ¼­ ¾Æ¿¹ ºôµå¸¦ ¸øÇϵµ·Ï Ç϶ó´Â °ÍÀÌ´Ù. ¿¡·¯°¡ ÀÖ´Â »óÅ·δ ÄÄÆÄÀÏÀ» ¿Ï·áÇÒ ¼ö ¾ø´Âµ¥ ÀÌ·¸°Ô ÇÏ¸é °³¹ßÀÚ´Â ¹Ýµå½Ã ¸í½ÃÀûÀ¸·Î ÃʱâÈ­¸¦ ÇÏ°Ô µÉ °ÍÀÌ¸ç ¾²·¹±â°ªÀ¸·Î ÀÎÇÑ ¹®Á¦¸¦ ¹æÁöÇÒ ¼ö ÀÖ´Ù.

3:4706Àº Á¶°Ç¹®¿¡ ´ëÀÔ ¿¬»êÀÚ¸¦ ¾µ °æ¿ì¸¦ ·¹º§ 3À¸·Î ³ôÀ̴µ¥ if (i = 3)°°Àº ½Ç¼ö´Â ºñ·Ï ÀûÇÕÇÑ ÄÚµå¶ó ÇÏ´õ¶óµµ ÈçÇÏ°Ô ÇÏ´Â ½Ç¼öÀ̹ǷΠÀÌ·± Äڵ带 º¸¸é ¹Ýµå½Ã ¾Ë·Á ´Þ¶ó´Â ¶æÀÌ´Ù. 4706¹ø °æ°íÀÇ ·¹º§ÀÌ 4À̹ǷΠºñÁÖ¾ó C++ÀÇ ±âº» ¼³Á¤À¸·Î´Â ÀÌ °æ°í°¡ Ãâ·ÂµÇÁö ¾Ê´Â´Ù. push¿Í pop ¸í·ÉÀº °æ°í ·¹º§À» Àá½Ã¸¸ º¯°æÇÏ°í ½ÍÀ» ¶§ »ç¿ëÇÑ´Ù.

 

#pragma warning(push)

// Áß°£¿¡ °æ°í ·¹º§À» ¸¶À½´ë·Î ¹Ù²Û´Ù.

#pragma warning(pop)

 

ƯÁ¤ ÇÔ¼ö¿¡ ´ëÇØ¼­¸¸ °æ°í Ãâ·Â ¹æ¹ýÀ» ¹Ù²Ù°í ½Í°í ±× ¿ÜÀÇ ÄÚµå´Â µðÆúÆ®¸¦ Àû¿ëÇÏ°í ½ÍÀ» ¶§ ÀÌ µÎ ¸í·ÉÀ» »ç¿ëÇÑ´Ù. º¯°æÇϱâ ÀüÀÇ »óŸ¦ push ÇÏ¿© ÀúÀåÇØ ³õ°í ¸¶À½´ë·Î ¿É¼ÇÀ» º¯°æÇÑ ÈÄ pop ¸í·ÉÀ¸·Î ´Ù½Ã º¹¿øÇϸé ÀÌ ÄÚµå ¹Ù±ùÀº ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù.