C ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É ¥Û¡¼¥àÌܼ¡Á°¥Ú¡¼¥¸¤Ø¼¡¥Ú¡¼¥¸¤Øº÷°ú


Âè 6 ¾Ï

lint ¥½¡¼¥¹¥³¡¼¥É¸¡ºº¥×¥í¥°¥é¥à

¤³¤Î¾Ï¤Ç¤Ï lint ¥×¥í¥°¥é¥à¤Î»ÈÍÑÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£lint ¥×¥í¥°¥é¥à¤ò»ÈÍѤ¹¤ë¤È¼Â¹Ô»þ¤Ë¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤äͽ´ü¤·¤Ê¤¤·ë²Ì¤ò¤â¤¿¤é¤¹²ÄǽÀ­¤Î¤¢¤ë¥³¡¼¥É¤¬ C ¥³¡¼¥É¤Ë¤Ê¤¤¤«¸¡ºº¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Â¿¤¯¤Î¾ì¹ç lint ¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬É¬¤º¤·¤â¸¡½Ð¤·¤Ê¤¤¸í¤Ã¤¿¥³¡¼¥É¡¢¥¨¥é¡¼¤òµ¯¤³¤·¤ä¤¹¤¤¥³¡¼¥É¡¢¤¢¤ë¤¤¤Ïɸ½à³°¥³¡¼¥É¤Ë¤Ä¤¤¤Æ·Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£

lint ¥×¥í¥°¥é¥à¤Ï C ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤êÀ¸À®¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î¥¨¥é¡¼¤È·Ù¹ð¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£¤µ¤é¤ËÀøºßŪ¥Ð¥°¤È°Ü¿¢¾å¤ÎÌäÂê¤Ë´Ø¤¹¤ë·Ù¹ð¤âɽ¼¨¤·¤Þ¤¹¡£Â¿¤¯¤Î¾ì¹ç¡¢lint ¤«¤éɽ¼¨¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Ï¡¢¥×¥í¥°¥é¥à¤Î¥µ¥¤¥º¤ÈɬÍפʵ­²±Îΰè¤ò½Ì¾®¤·¡¢Á´ÂΤθúΨ¤ò²þÁ±¤¹¤ë¼ê½õ¤±¤È¤Ê¤ê¤Þ¤¹¡£

lint ¥×¥í¥°¥é¥à¤Ï¥³¥ó¥Ñ¥¤¥é¤ÈƱ¤¸¥í¥±¡¼¥ë¤ò»ÈÍѤ·¡¢lint ¤Î½ÐÎÏ¤Ï stderr ¤ËÁ÷¤é¤ì¤Þ¤¹¡£¤³¤Î¾Ï¤ÎÀâÌÀ¹àÌܤϼ¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

´ðËÜ lint ¤È³ÈÄ¥ lint

lint ¥×¥í¥°¥é¥à¤Ï¼¡¤Î 2 ¤Ä¤Î¥â¡¼¥É¤Çưºî¤·¤Þ¤¹¡£

´ðËÜ lint ¤Ç¤â³ÈÄ¥ lint ¤Ç¤â¡¢¥Õ¥¡¥¤¥ëÁ´°è (¥é¥¤¥Ö¥é¥ê¤ò´Þ¤à) ¤ÇÌ·½â¤·¤¿ÄêµÁ¤ä»ÈÍѤò¸¡½Ð¤·¡¢¥Õ¥¡¥¤¥ë¤ò¸ÄÊÌ¤ËÆÈΩ¤·¤Æ½èÍý¤¹¤ë C ¥³¥ó¥Ñ¥¤¥é¤ÎÉÔ­¤òÊ䤤¤Þ¤¹¡£ÆÃ¤ËÂ礭¤Ê¥×¥í¥¸¥§¥¯¥È´Ä¶­¤Ë¤ª¤¤¤Æ 1 ¤Ä¤Î´Ø¿ô¤¬²¿É´¤â¤Î¥â¥¸¥å¡¼¥ë¤Ç»ÈÍѤµ¤ì¤ë¾ì¹ç¡¢Â¾¤ÎÊýË¡¤Ç¤Ïõ¤·½Ð¤¹¤³¤È¤¬º¤Æñ¤Ê¥Ð¥°¤òȯ¸«¤¹¤ë¤Î¤ËÌòΩ¤Á¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢´üÂÔ¤·¤Æ¤¤¤ë¤è¤ê¤â 1 ¤Ä¾¯¤Ê¤¤°ú¿ô¤Ç¸Æ¤Ó½Ð¤µ¤ì¤¿´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë¥×¥Ã¥·¥å¤µ¤ì¤Ê¤«¤Ã¤¿Ãͤò¥¹¥¿¥Ã¥¯¤«¤é¼è¤ê½Ð¤·¡¢¤½¤Î¥¹¥¿¥Ã¥¯°ÌÃ֤Υá¥â¥ê¡¼¤Î¾õÂ֤ˤè¤Ã¤ÆÀµ¤·¤¤·ë²Ì¤ä´Ö°ã¤Ã¤¿·ë²Ì¤òÊÖ¤·¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê°Í¸À­¤ä¥Þ¥·¥ó¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ø¤Î°Í¸À­¤ò¸¡½Ð¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢lint ¤Ï¥æ¡¼¥¶¡¼¼«¿È¤Î¥Þ¥·¥ó¤äÊ̤Υޥ·¥ó¤Ç¼Â¹Ô¤µ¤ì¤ë¥³¡¼¥É¤ò³Î¤«¤Ê¤â¤Î¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

³ÈÄ¥¥â¡¼¥É¤Ç¤Ï¡¢lint ¤Ï´ðËܥ⡼¥É¤Î¾ì¹ç¤è¤ê¤µ¤é¤Ë¾Ü¤·¤¤Êó¹ð¤ò½Ð¤·¤Þ¤¹¡£³ÈÄ¥¥â¡¼¥É¤Î lint ¤Ë¤Ï¼¡¤Îµ¡Ç½¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£

³ÈÄ¥¥â¡¼¥É¤Ç¤Ï¡¢lint ¤Ï¼¡¤ÎÌäÂê¤ò¸¡½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

»ÈÍÑÊýË¡

lint ¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤«¤éµ¯Æ°¤·¤Þ¤¹¡£´ðËܥ⡼¥É¤Ç lint ¤òµ¯Æ°¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£

% lint <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c

³ÈÄ¥ lint ¤Ï¡¢-Nlevel ¤Þ¤¿¤Ï -Ncheck ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£

% lint -Nlevel=3 <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c

lint ¤Ï¡¢2 ¤Ä¤Î¥Ñ¥¹¤Ç¥³¡¼¥É¤Î¸¡ºº¤ò¤·¤Þ¤¹¡£ºÇ½é¤Î¥Ñ¥¹¤Ç¤Ï C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¸ÄÊ̤Υ¨¥é¡¼¾ò·ï¤ò¡¢Âè 2 ¤Î¥Ñ¥¹¤Ç¤Ï C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë´Ö¤ÎÉÔÀ°¹ç¤ò¸¡ºº¤·¤Þ¤¹¡£¤³¤Î¥×¥í¥»¥¹¤Ï¡¢lint ¤¬ -c ¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¥æ¡¼¥¶¡¼¤Ë¤Ï¸«¤¨¤Þ¤»¤ó¡£

% lint -c <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c

¤³¤Î¾ì¹ç¤Î lint ¤Ï¡¢ºÇ½é¤Î¥Ñ¥¹¤Î¤ß¤ò¼Â¹Ô¤·¡¢Âè 2 ¤Î¥Ñ¥¹¤Ë´ØÏ¢¤¹¤ë¾ðÊ󡢤Ĥޤê
<¥Õ¥¡¥¤¥ë 1>·c ¤È <¥Õ¥¡¥¤¥ë 2>.c ´Ö¤ÎÄêµÁ¤ª¤è¤Ó»ÈÍѤÎÌ·½â¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼ý½¸¤·¤Þ¤¹¡£¤½¤·¤Æ¡¢¤½¤ì¤ò <¥Õ¥¡¥¤¥ë 1>·ln ¤ª¤è¤Ó <¥Õ¥¡¥¤¥ë 2>.ln ¤È̾ÉÕ¤±¤é¤ì¤¿Ãæ´Ö¥Õ¥¡¥¤¥ë¤È¤·¤ÆºîÀ®¤·¤Þ¤¹¡£

% ls
<¥Õ¥¡¥¤¥ë 1>.c 
<¥Õ¥¡¥¤¥ë 1>.ln
<¥Õ¥¡¥¤¥ë 2>.c
<¥Õ¥¡¥¤¥ë 2>.ln

¤³¤Î¤è¤¦¤Ë¡¢lint ¤Î -c ¥ª¥×¥·¥ç¥ó¤Ï cc ¤Î -c ¥ª¥×¥·¥ç¥ó¤¬¥³¥ó¥Ñ¥¤¥é¤Î¥ê¥ó¥¯ÊÔ½¸Ãʳ¬¤òÍÞÀ©¤¹¤ë¤Î¤ÈƱ¤¸ÍÍ¤ËÆ°ºî¤·¤Þ¤¹¡£°ìÈ̤ˡ¢lint ¤Î¥³¥Þ¥ó¥É¹Ô¹½Ê¸¤Ï cc ¥³¥Þ¥ó¥É¹Ô¹½Ê¸¤Ë½¾¤Ã¤Æ¤¤¤Þ¤¹¡£

.ln ¥Õ¥¡¥¤¥ë¤¬ lint ¤ÇÀ¸À®¤µ¤ì¤ë¤È¡¢Âè 2 ¤Î¥Ñ¥¹¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

% lint <¥Õ¥¡¥¤¥ë 1>.ln <¥Õ¥¡¥¤¥ë 2>.ln

lint ¤Ï¡¢¤½¤Î¥³¥Þ¥ó¥É¹Ô¤Î½çÈÖ¤Ç .c ¤Þ¤¿¤Ï .ln ¥Õ¥¡¥¤¥ë¤ò¤¤¤¯¤Ä¤Ç¤â½èÍý¤·¤Þ¤¹¡£¼¡¤Î¥³¥Þ¥ó¥É¹Ô¤Ï¡¢<¥Õ¥¡¥¤¥ë 3>.c ¤ÎÆâÉô¤Î¥¨¥é¡¼¤È 3 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤¹¤Ù¤Æ¤ÎÀ°¹çÀ­¤ò¸¡ºº¤¹¤ë¤è¤¦¤Ë lint ¤Ë»ØÎᤷ¤Þ¤¹¡£

% lint <¥Õ¥¡¥¤¥ë 1>.ln <¥Õ¥¡¥¤¥ë 2>.ln <¥Õ¥¡¥¤¥ë 3>.c

lint ¤Ï¡¢cc ¤ÈƱ¤¸½ç½ø¤Ç¥¤¥ó¥¯¥ë¡¼¥É¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£cc ¤Î -I ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë¡¢lint ¤Î -I ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

lint ¥³¥Þ¥ó¥É¹Ô¤Ë¤Ï¡¢Ê£¿ô¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤É¤Î¥ª¥×¥·¥ç¥ó¤â°ú¿ô¤ò¼è¤é¤º¡¢Ê£¿ô¤Îʸ»ú¤«¤éÀ®¤ë¥ª¥×¥·¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥ª¥×¥·¥ç¥óʸ»ú¤òÏ¢·ë¤·¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

% lint -cp -I<¥Ç¥£¥ì¥¯¥È¥ê 1> -I<¥Ç¥£¥ì¥¯¥È¥ê 2> <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c

¤³¤Î¥³¥Þ¥ó¥É¤Ï lint ¤Ë²¼µ­¤Î¤³¤È¤ò»Ø¼¨¤·¤Þ¤¹¡£

lint ¤Ë¤Ï¡¢ÆÃÄê¤Î½èÍý¤ò¼Â¹Ô¤·¡¢ÆÃÄê¤Î¾ò·ï¤Ë¤Ä¤¤¤ÆÊó¹ð¤¹¤ë¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤¬¿ô¿¤¯¤¢¤ê¤Þ¤¹¡£

lint ¤Î¥ª¥×¥·¥ç¥ó

lint ¥×¥í¥°¥é¥à¤ÏÀÅŪ¥¢¥Ê¥é¥¤¥¶¤Ç¤¹¡£¤½¤Î¤¿¤á¡¢¸¡½Ð¤·¤¿°Í¸À­¤Ë´Ø¤¹¤ë¼Â¹Ô»þ¤Î·ë²Ì¤òɾ²Á¤Ç¤­¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢¤¢¤Þ¤ê½ÅÍפǤϤʤ¤²¿É´¤â¤ÎÅþãÉÔ²Äǽ¤Ê break ʸ¤ò»ý¤Á¡¢¤³¤ì¤Ë¤Ä¤¤¤Æ¥æ¡¼¥¶¡¼¤¬¤Û¤È¤ó¤É²¿¤â¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¥×¥í¥°¥é¥à¤¬¤¢¤ë¤È¤¹¤ë¤È¡¢lint ¤Ï¤½¤ì¤ËÃé¼Â¤Ë¥Õ¥é¥°¤òΩ¤Æ¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢lint ¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤È»ØÎá (¥½¡¼¥¹¥Æ¥­¥¹¥È¤ËËä¤á¹þ¤Þ¤ì¤¿ÆÃÊ̤ÎÃí¼á) ¤¬Ìò¤ËΩ¤Á¤Þ¤¹¡£°Ê²¼¤Ë¤½¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£

lint ¤Î¥ª¥×¥·¥ç¥ó¤ò°Ê²¼¤Ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤ËÀâÌÀ¤·¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Î lint ¥ª¥×¥·¥ç¥ó¤Ï¡¢lint ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ÎÍÞÀ©¤Ë´ØÏ¢¤·¤Æ¤¤¤Þ¤¹¡£¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤ÎÀâÌÀ¤Î¸å¡¢É½ 6-6 ¤Ë¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤È¤½¤ì¤¬ÍÞÀ©¤¹¤ë¥á¥Ã¥»¡¼¥¸¤Î°ìÍ÷¤ò¼¨¤·¤Þ¤¹¡£³ÈÄ¥ lint ¤ò¸Æ¤Ó½Ð¤¹¥ª¥×¥·¥ç¥ó¤Ï -N ¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£

lint ¤Ï¡¢-A¡¢-D¡¢-E¡¢-g¡¢-H¡¢-O¡¢-P¡¢-U¡¢-Xa¡¢-Xc¡¢-Xs¡¢-Xt¡¢-Y ¤ò´Þ¤à¿¤¯¤Î cc ¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤òǧ¼±¤·¤Þ¤¹¤¬¡¢-g ¤È -O ¤Ï̵»ë¤·¤Þ¤¹¡£Ç§¼±¤µ¤ì¤Ê¤¤¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤È·Ù¹ð¤¬½Ð¤µ¤ì¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£

-#

¾éĹ¥â¡¼¥É¤ò¥ª¥ó¤Ë¤·¡¢¸Æ¤Ó½Ð¤¹¤´¤È¤Ë³Æ¹½À®Í×ÁǤòɽ¼¨¤·¤Þ¤¹¡£

-###

¸Æ¤Ó½Ð¤¹¤´¤È¤Ë³Æ¹½À®Í×ÁǤòɽ¼¨¤·¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¼Â¹Ô¤·¤Þ¤»¤ó¡£

-a

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-b

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-C<¥Õ¥¡¥¤¥ë̾>

»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ã¤¿ .ln ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤é¤Î .ln ¥Õ¥¡¥¤¥ë¤Ï¡¢lint ¤ÎºÇ½é¤Î¥Ñ¥¹¤À¤±¤ÇºîÀ®¤µ¤ì¤Þ¤¹¡£<¥Õ¥¡¥¤¥ë̾> ¤ÏÀäÂХѥ¹Ì¾¤Ç¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£

-c

¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤵ¤ì¤¿ .c ¥Õ¥¡¥¤¥ë¤´¤È¤Ë¡¢lint ¤ÎÂè 2 ¤Î¥Ñ¥¹¤Ë´ØÏ¢¤¹¤ë¾ðÊ󤫤é¤Ê¤ë ·ln ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£Âè 2 ¥Ñ¥¹¤Ï¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£

-dirout=<¥Ç¥£¥ì¥¯¥È¥ê>

lint ½ÐÎÏ¥Õ¥¡¥¤¥ë (.ln ¥Õ¥¡¥¤¥ë) ¤òÆþ¤ì¤ë <¥Ç¥£¥ì¥¯¥È¥ê> ¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï -c ¥ª¥×¥·¥ç¥ó¤Ë±Æ¶Á¤òÍ¿¤¨¤Þ¤¹¡£

-err=warn

-err=warn ¤Ï -errwarn=%all ¤Î¥Þ¥¯¥í¤Ç¤¹¡£¡Ö-errwarn=t¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-errchk=l(, l)

ÃÍÅϤ·¤µ¤ì¤¿¹½Â¤Âΰú¿ô structarg ¤ò¸¡ºº¤·¤Þ¤¹¡£¥í¥ó¥°À°¿ô¡¢¤ª¤è¤Ó¥Ý¥¤¥ó¥¿¤Î¥µ¥¤¥º¤¬ 64 ¥Ó¥Ã¥È¤Î´Ä¶­¤Ø¤Î°Ü¿¢À­¤ò¸¡ºº¤·¤Þ¤¹¡£

l ¤Ë¤Ï¡¢¼¡¤Ë¼¨¤¹ 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¹àÌܤò¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£

%all

errchk ¤Ë¤è¤ë¸¡ºº¤ò¤¹¤Ù¤Æ¼Â¹Ô¤·¤Þ¤¹¡£

%none

errchk ¤Ë¤è¤ë¸¡ºº¤ò¹Ô¤¤¤Þ¤»¤ó¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£

longptr64

¥í¥ó¥°À°¿ô¡¢¤ª¤è¤Ó¥Ý¥¤¥ó¥¿¤Î¥µ¥¤¥º¤¬ 64 ¥Ó¥Ã¥È¤Èɸ½àÀ°¿ô¤Î¥µ¥¤¥º¤¬ 32 ¥Ó¥Ã¥È¤Î´Ä¶­¤Ø¤Î°Ü¿¢À­¤ò¸¡ºº¤·¤Þ¤¹¡£ÌÀ¼¨Åª¤Ê¥­¥ã¥¹¥È¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢¥Ý¥¤¥ó¥¿¼°¤È¥í¥ó¥°À°¿ô¼°¤Îɸ½àÀ°¿ô¤Ø¤ÎÂåÆþ¤ò¸¡ºº¤·¤Þ¤¹¡£

no%longptr64

errchk ¤Ë¤è¤ë longptr64 ¤Î¸¡ºº¤ò¹Ô¤¤¤Þ¤»¤ó¡£
Ãͤϡ¢¥³¥ó¥Þ¤òÍѤ¤¤ÆÁȤ߹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
-errchk=longptr64,structarg
¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-errchk=%none ¤Ç¤¹¡£-errchk ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢
-errchk=%all ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

no%structarg

errchk ¤Ë¤è¤ë structarg ¤Î¸¡ºº¤ò¹Ô¤¤¤Þ¤»¤ó¡£

parentheses

¥³¡¼¥É¤ÎÊݼéÀ­¤ò¹â¤á¤Þ¤¹¡£-errchk=parentheses ¤Ç·Ù¹ð¤¬ÊÖ¤µ¤ì¤¿¾ì¹ç¤Ï¡¢¤µ¤é¤Ë³ç¸Ì¤ò»ÈÍѤ·¤Æ¡¢¥³¡¼¥ÉÆâ¤Î±é»»¤ÎÍ¥Àè½ç°Ì¤òÌÀ³Î¤Ë»Ø¼¨¤¹¤ë¤³¤È¤ò¸¡Æ¤¤·¤Æ¤¯¤À¤µ¤¤¡£

signext

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢É乿¤Ê¤·À°¿ô·¿¤Î¼°¤Ë¤ª¤±¤ëÉ乿ÉÕ¤­À°¿ôÃͤÎÉ乿³ÈÄ¥¤ò¡¢ ANSI/ISO C ¤ÎÄ̾ï¤ÎÃÍÊÝ»ýµ¬Â§¤¬Ç§¤á¤ë¾ì¹ç¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-errchk=longptr64 ¤¬°ì½ï¤Ë»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£

sizematch

¾®¤µ¤ÊÀ°¿ô¤ËÂ礭¤ÊÀ°¿ô¤¬ÂåÆþ¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤òȯ¹Ô¤·¤Þ¤¹¡£¤³¤Î·Ù¹ð¤Ï¡¢¥µ¥¤¥º¤¬Æ±¤¸¤Ç¤¢¤Ã¤Æ¤â¡¢É乿¤¬°Û¤Ê¤ëÀ°¿ô´Ö¤ÎÂåÆþ (unsigned int = signed int) ¤Ë¤Ä¤¤¤Æ¤âȯ¹Ô¤µ¤ì¤Þ¤¹¡£

structarg

ÃÍÅϤ·¤µ¤ì¤¿¹½Â¤Âΰú¿ô structarg ¤ò¸¡ºº¤·¤Þ¤¹¡£²¾°ú¿ô¤Î·¿¤¬ÉÔÌÀ¤Î¾ì¹ç¤Ï¡¢¤½¤Î»Ý¤¬Êó¹ð¤µ¤ì¤Þ¤¹¡£

-errchk=locfmtchk

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï lint ¤ÎºÇ½é¤Î¥Ñ¥¹¤Ç printf ·Á¼°¤Îʸ»úÎó¤ò¸¡ºº¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£-errchk=locfmtchk ¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¤Ç¤â¡¢lint ¤ÏÆóÅÙÌܤΥѥ¹¤Çɬ¤º printf ·Á¼°¤Îʸ»úÎó¤ò¸¡ºº¤·¤Þ¤¹¡£

-errfmt=f

lint ½ÐÎϤνñ¼°¤ò»ØÄꤷ¤Þ¤¹¡£f ¤Ë¤Ï¡¢macro¡¢simple¡¢src¡¢tab ¤Î¤¤¤º¤ì¤« 1 ¤Ä¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£

ɽ 6-1   -errfmt ¤ÎÃÍ
ÃÍ °ÕÌ£
macro ¥Þ¥¯¥í¤òŸ³«¤·¤Æ¡¢¥¨¥é¡¼¤Î¤¢¤ë¥½¡¼¥¹¥³¡¼¥É¡¢¹ÔÈֹ桢¾ì½ê¤òɽ¼¨¤·¤Þ¤¹¡£
simple ¥¨¥é¡¼¤Î¤¢¤ë¹ÔÈÖ¹æ¤È¾ì½êÈÖ¹æ (Âç³ç¸ÌÆâ) ¤òɽ¼¨¤·¡¢1 ¹Ô¤Î (´Êñ¤Ê) ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò¼¨¤·¤Þ¤¹¡£-s ¥ª¥×¥·¥ç¥ó¤ÈƱÍͤǤ¹¤¬¡¢¥¨¥é¡¼°ÌÃ֤˴ؤ¹¤ë¾ðÊ󤬯þ¤Ã¤Æ¤¤¤Þ¤¹¡£
src ¥¨¥é¡¼¤Î¤¢¤ë¥½¡¼¥¹¥³¡¼¥É¡¢¹ÔÈֹ桢¾ì½ê¤òɽ¼¨¤·¤Þ¤¹¡£¥Þ¥¯¥í¤ÏŸ³«¤·¤Þ¤»¤ó¡£
tab ɽ·Á¼°¤Çɽ¼¨¤·¤Þ¤¹¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£


¥Ç¥Õ¥©¥ë¥È¤Ï -errfmt=tab ¤Ç¤¹¡£-errfmt ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-errfmt=tab ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

Ê£¿ô¤Î½ñ¼°¤ò»ØÄꤹ¤ë¤ÈºÇ¸å¤Ë»ØÄꤷ¤¿½ñ¼°¤¬»ÈÍѤµ¤ì¡¢lint ¤Ï»ÈÍѤµ¤ì¤Ê¤¤½ñ¼°¤Ë¤Ä¤¤¤Æ·Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£

-errhdr=h

-Ncheck ¤Ç¸¡ººÂÐ¾Ý¤Ë¤Ê¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸ÂÄꤷ¤Þ¤¹¡£h ¤Ë¤Ï¡¢<¥Ç¥£¥ì¥¯¥È¥ê>¡¢no%<¥Ç¥£¥ì¥¯¥È¥ê>¡¢%all¡¢%none¡¢%user ¤Î 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤ò¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£

ɽ 6-2   -errhdr ¤ÎÃÍ
ÃÍ °ÕÌ£
<¥Ç¥£¥ì¥¯¥È¥ê> <¥Ç¥£¥ì¥¯¥È¥ê> ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò
¸¡ºº¤·¤Þ¤¹¡£
no%<¥Ç¥£¥ì¥¯¥È¥ê> <¥Ç¥£¥ì¥¯¥È¥ê> ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò
¸¡ºº¤·¤Þ¤»¤ó¡£
%all »ÈÍѤµ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸¡ºº¤·¤Þ¤¹¡£
%none ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸¡ºº¤·¤Þ¤»¤ó¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£
%user »ÈÍѤµ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸¡ºº¤·¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢/usr/include ¤ª¤è¤Ó¤½¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÆþ¤Ã¤Æ¤¤¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤È¥³¥ó¥Ñ¥¤¥é¤¬Ä󶡤·¤Æ¤¤¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò½ü¤¯¡¢¤¹¤Ù¤Æ¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸¡ºº¤·¤Þ¤¹¡£


¥Ç¥Õ¥©¥ë¥È¤Ï -errhdr=%none ¤Ç¤¹¡£-errhdr ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-errhdr=%user ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£°Ê²¼¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

% lint -errhdr=inc1 -errhdr=../inc2

¤³¤ÎÎã¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê inc1 ¤È ../inc2 Æâ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸¡ºº¤·¤Þ¤¹¡£

% lint -errhdr=%all,no%../inc

¤³¤ÎÎã¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê ../inc ¤ËÆþ¤Ã¤Æ¤¤¤ë¤â¤Î¤ò½ü¤¯¡¢»ÈÍѤµ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤ò¸¡ºº¤·¤Þ¤¹¡£

-erroff=<¥¿¥°>(,<¥¿¥°>)

lint ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤Þ¤¿¤Ï»ÈÍѲÄǽ¤Ë¤·¤Þ¤¹¡£

t ¤Ë¤Ï¡¢<¥¿¥°>¡¢no%<¥¿¥°>¡¢all¡¢%none ¤Î 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤ò¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£

ɽ 6-3   -erroff ¤ÎÃÍ
ÃÍ °ÕÌ£
<¥¿¥°> <¥¿¥°> ¤Ç»ØÄꤷ¤¿¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£-errtags=yes ¥ª¥×¥·¥ç¥ó¤Ç¡¢¥á¥Ã¥»¡¼¥¸¤Î¥¿¥°¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
no%<¥¿¥°> <¥¿¥°> ¤Ç»ØÄꤷ¤¿¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѲÄǽ¤Ë¤·¤Þ¤¹¡£
%all ¤¹¤Ù¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£
%none ¤¹¤Ù¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѲÄǽ¤Ë¤·¤Þ¤¹¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£


¥Ç¥Õ¥©¥ë¥È¤Ï -erroff=%none ¤Ç¤¹¡£-erroff ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-erroff=%all ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

% lint -erroff=%all,no%E_ENUM_NEVER_DEF,no%E_STATIC_UNUSED

¤³¤ÎÎã¤Ï¡¢¡ÖÎóµó·¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡×¤È¡ÖÀÅŪ¥·¥ó¥Ü¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡×¤Î¥á¥Ã¥»¡¼¥¸¤À¤±¤òɽ¼¨¤·¡¢¤½¤Î¾¤Î¥á¥Ã¥»¡¼¥¸¤ÏÍÞÀ©¤·¤Þ¤¹¡£

% lint -erroff=E_ENUM_NEVER_DEF,E_STATIC_UNUSED

¤³¤ÎÎã¤Ï¡¢¡ÖÎóµó·¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡×¤È¡ÖÀÅŪ¥·¥ó¥Ü¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡×¤Î¥á¥Ã¥»¡¼¥¸¤À¤±¤òÍÞÀ©¤·¤Þ¤¹¡£

-errtags=a

³Æ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¥á¥Ã¥»¡¼¥¸¥¿¥°¤òɽ¼¨¤·¤Þ¤¹¡£a ¤Ë¤Ï yes ¤Þ¤¿¤Ï no ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï -errtags=no ¤Ç¤¹¡£-errtags ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢
-errtags=yes ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¤¹¤Ù¤Æ¤Î -errfmt ¥ª¥×¥·¥ç¥ó¤Ë»ÈÍѤǤ­¤Þ¤¹¡£

-errwarn=t

»ØÄꤵ¤ì¤¿·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤¿¾ì¹ç¡¢lint ¤Ï¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£t ¤Ë¤Ï¡¢<¥¿¥°>¡¢no%<¥¿¥°>¡¢%all¡¢%none ¤Î¤¤¤º¤ì¤«¤ò¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£»ØÄꤹ¤ë½ç½ø¤Ï½ÅÍפǤ¹¡£¤¿¤È¤¨¤Ð¡¢¡Ö%all,no%<¥¿¥°>¡×¤È»ØÄꤷ¤¿¾ì¹ç¡¢<¥¿¥°> °Ê³°¤Î·Ù¹ð¤¬È¯¹Ô¤µ¤ì¤ë¤È¡¢lint ¤ÏÃ×̿Ū¤Ê¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤Þ¤¹¡£-errwarn ¤ÎÃͤò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£

ɽ 6-4   -errwarn ¤ÎÃÍ
tag <¥¿¥°> ¤Ë»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬·Ù¹ð¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÈ¯¹Ô¤µ¤ì¤¿¾ì¹ç¡¢lint ¤ÏÃ×̿Ū¤Ê¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤Þ¤¹¡£<¥¿¥°> ¤¬È¯¹Ô¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï̵¸ú¤Ç¤¹¡£
no%tag <¥¿¥°> ¤Ë»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬·Ù¹ð¥á¥Ã¥»¡¼¥¸¤È¤·¤Æ¤À¤±È¯¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¡¢lint ¤¬Ã×̿Ū¤Ê¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤¹¤ë¤³¤È¤¬¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ <¥¿¥°> ¤Ë»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬È¯¹Ô¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï̵¸ú¤Ç¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢<¥¿¥°> ¤Þ¤¿¤Ï %all ¤ò»ÈÍѤ·¤Æ°ÊÁ°¤Ë»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬·Ù¹ð¥á¥Ã¥»¡¼¥¸¤È¤·¤ÆÈ¯¹Ô¤µ¤ì¤Æ¤â lint ¤¬Ã×̿Ū¤Ê¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
%all ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬²¿¤«È¯¹Ô¤µ¤ì¤ë¾ì¹ç¤Ë lint ¤¬Ã×̿Ū¤Ê¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£%all ¤Ë³¤¤¤Æ no%<¥¿¥°> ¤ò»ÈÍѤ¹¤ë¤È¡¢·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Ë¤è¤Ã¤Æ¤Ï¤³¤Îưºî¤¬È¯À¸¤·¤Ê¤¤¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡£
%none ¤É¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬È¯¹Ô¤µ¤ì¤Æ¤â lint ¤¬Ã×̿Ū¤Ê¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤¹¤ë¤³¤È¤¬¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£


¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-errwarn=%none ¤Ç¤¹¡£-errwarn ¤À¤±¤ò»ØÄꤷ¤¿¾ì¹ç¡¢-errwarn=%all ¤È»ØÄꤷ¤¿¤³¤È¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£

-F

¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤵ¤ì¤¿ .c ¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤È¤­¡¢¤½¤Î¥Ù¡¼¥¹Ì¾¤Ç¤Ï¤Ê¤¯¥³¥Þ¥ó¥É¹Ô¤ËÍ¿¤¨¤é¤ì¤¿¥Ñ¥¹Ì¾¤ò½ÐÎϤ·¤Þ¤¹¡£

-fd

¸Å¤¤·Á¼°¤Î´Ø¿ôÄêµÁ¤Þ¤¿¤ÏÀë¸À¤Ë¤Ä¤¤¤ÆÊó¹ð¤·¤Þ¤¹¡£

-flagsrc=<¥Õ¥¡¥¤¥ë>

<¥Õ¥¡¥¤¥ë> Ãæ¤Ë³ÊǼ¤µ¤ì¤¿¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ lint ¤ò¼Â¹Ô¤·¤Þ¤¹¡£<¥Õ¥¡¥¤¥ë> ¤Ë¤Ï¡¢1 ¹Ô¤Ë 1 ¤Ä¤º¤Ä¡¢Ê£¿ô¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£

-h

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-I<¥Ç¥£¥ì¥¯¥È¥ê>

¥¤¥ó¥¯¥ë¡¼¥ÉÍѥإåÀ¡¼¥Õ¥¡¥¤¥ë¤ò <¥Ç¥£¥ì¥¯¥È¥ê> ¤«¤é¸¡º÷¤·¤Þ¤¹¡£

-k

/*LINTED[<¥á¥Ã¥»¡¼¥¸>]*/ »ØÎá¤Þ¤¿¤ÏÃí¼á NOTE(LINTED(<¥á¥Ã¥»¡¼¥¸>)) ¤Îưºî¤òÊѹ¹¤·¤Þ¤¹¡£Ä̾ï lint ¤Ï¡¢¾å½Ò¤Î¤è¤¦¤Ê»ØÎá¤Î¸å¤Ë¥³¡¼¥É¤¬Â³¤¯¾ì¹ç¡¢·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£-k ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢»ØÎá¤Þ¤¿¤ÏÃí¼á¤ÎÃæ¤Î¥³¥á¥ó¥È¤ò´Þ¤à¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£

-L<¥Ç¥£¥ì¥¯¥È¥ê>

-l ¤È¶¦¤Ë»ÈÍѤ·¡¢<¥Ç¥£¥ì¥¯¥È¥ê> ¤Î lint ¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£

-lx

lint ¥é¥¤¥Ö¥é¥ê llib-lx.ln ¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£

-m

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-Ncheck=c

¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ëÃæ¤ÎÀë¸À¤ÎÂбþ¤È¥Þ¥¯¥í¤Î¸¡ºº¤ò¹Ô¤¤¤Þ¤¹¡£c ¤Ë¤Ï¡¢¸¡ºº¹àÌܤǤ¢¤ë macro¡¢extern¡¢%all¡¢%none¡¢no%macro¡¢no%extern ¤Î 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤ò¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£

ɽ 6-5   -Ncheck ¤ÎÃÍ
ÃÍ °ÕÌ£
macro ¥Õ¥¡¥¤¥ë´Ö¤Ç¤Î¥Þ¥¯¥íÄêµÁ¤Î°ì´ÓÀ­¤ò¸¡ºº¤·¤Þ¤¹¡£
extern ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤È¤½¤ì¤Ë´ØÏ¢¤¹¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤È¤Î´Ö¤ÎÀë¸À¤Î 1 ÂÐ 1 Âбþ¤ò¸¡ºº¤·¤Þ¤¹ (¤¿¤È¤¨¤Ð <¥Õ¥¡¥¤¥ë 1>.c ¤È
<¥Õ¥¡¥¤¥ë 1>.h )¡£¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Î extern Àë¸À¤Ë;ʬ¤âÉÔ­¤â¤Ê¤¤¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
%all -Ncheck ¤Î¤¹¤Ù¤Æ¤Î¸¡ºº¤ò¼Â¹Ô¤·¤Þ¤¹¡£
%none -Ncheck ¤Î¸¡ºº¤ò¼Â¹Ô¤·¤Þ¤»¤ó¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£
no%macro -Ncheck ¤Î¥Þ¥¯¥í¸¡ºº¤ò¼Â¹Ô¤·¤Þ¤»¤ó¡£
no%extern -Ncheck ¤Î extern ¸¡ºº¤ò¼Â¹Ô¤·¤Þ¤»¤ó¡£


¥Ç¥Õ¥©¥ë¥È¤Ï -Ncheck=%none ¤Ç¤¹¡£-Ncheck ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-Ncheck=%all ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

Ãͤϥ³¥ó¥Þ¤òÍѤ¤¤ÆÁȤ߹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ (Îã : -Ncheck=extern,macro)¡£

¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

% lint -Ncheck=%all,no%macro

¤³¤ÎÎã¤Ï¥Þ¥¯¥í°Ê³°¤Î¤¹¤Ù¤Æ¤Î¸¡ºº¹àÌܤò¼Â¹Ô¤·¤Þ¤¹¡£

-Nlevel=n

ÌäÂêÊó¹ð¤Î²òÀÏ¥ì¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢¸¡½Ð¤¹¤ë¥¨¥é¡¼¤ÎÎ̤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥ì¥Ù¥ë¤¬¹â¤¤¤Û¤É¸¡¾Ú¤Ë¤«¤«¤ë»þ´Ö¤ÏŤ¯¤Ê¤ê¤Þ¤¹¡£n ¤Ï¡¢1¡¢2¡¢3¡¢4 ¤Î¤¤¤º¤ì¤«¤Î¿ôÃͤǤ¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï -Nlevel=2 ¤Ç¤¹¡£-Nlrevel ¤Ï -Nlevel=4 ¤ÈƱµÁ¤Ë¤Ê¤ê¤Þ¤¹¡£

-Nlevel=1

¸Ä¡¹¤Î¼ê³¤­¤ò²òÀϤ·¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥Ñ¥¹¤ÇȯÀ¸¤¹¤ë̵¾ò·ï¥¨¥é¡¼¤òÊó¹ð¤·¤Þ¤¹¡£Âç°èŪ¤Ê¥Ç¡¼¥¿¤ª¤è¤ÓÀ©¸æ¤Î¥Õ¥í¡¼²òÀϤϹԤ¤¤Þ¤»¤ó¡£

-Nlevel=2

¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£Âç°èŪ¤Ê¥Ç¡¼¥¿¤ª¤è¤Ó¥Õ¥í¡¼¤ò´Þ¤á¡¢¥×¥í¥°¥é¥àÁ´ÂΤò²òÀϤ·¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô¥Ñ¥¹¤ÇȯÀ¸¤¹¤ë̵¾ò·ï¥¨¥é¡¼¤òÊó¹ð¤·¤Þ¤¹¡£

-Nlevel=3

-Nlevel=2 ¤Ç¼Â¹Ô¤µ¤ì¤ë²òÀϤ˲䨤ơ¢Äê¿ô¤ÎÅÁÇÅ¡¢Äê¿ô¤¬¼ÂºÝ¤Î°ú¿ô¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤ò´Þ¤á¡¢¥×¥í¥°¥é¥àÁ´ÂΤò²òÀϤ·¤Þ¤¹¡£

¤³¤Î²òÀÏ¥ì¥Ù¥ë¤Ç¤Î C ¥×¥í¥°¥é¥à¤Î¸¡ºº¤Ï¡¢Ä¾Á°¤Î¥ì¥Ù¥ë¤è¤ê 2 Çܤ«¤é 4 ÇÜŤ¤»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢lint ¤¬¥×¥í¥°¥é¥à¤ÎÊÑ¿ô¤ËÂФ·¤Æ¼è¤êÆÀ¤ëÃͤν¸¹ç¤òºîÀ®¤·¡¢¥×¥í¥°¥é¥à¤ÎÉôʬ²ò¼á¤ò¹Ô¤¦¤¿¤á¤Ç¤¹¡£¤³¤ì¤é¤ÎÊÑ¿ôÃͤν¸¹ç¤Ï¡¢Äê¿ô¤È¡¢¥×¥í¥°¥é¥à¤Ç»ÈÍѲÄǽ¤ÊÄê¿ô¥ª¥Ú¥é¥ó¥É¤ò´Þ¤à¾ò·ïʸ¤Ë´ð¤Å¤¤¤ÆºîÀ®¤µ¤ì¡¢Â¾¤Î½¸¹ç (Äê¿ôÅÁÇŤηÁ¼°) ¤òºîÀ®¤¹¤ë¤È¤­¤Î´ð½à¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤Î¸å¡¢²òÀϤηë²Ì¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿½¸¹ç¤Ï¡¢¼¡¤Î¥¢¥ë¥´¥ê¥º¥à¤Ë½¾¤Ã¤Æ¸í¤ê¤¬¤Ê¤¤¤«É¾²Á¤µ¤ì¤Þ¤¹¡£

¥ª¥Ö¥¸¥§¥¯¥È¤¬¼è¤êÆÀ¤ëÃͤν¸¹ç¤ÎÃæ¤ËÀµ¤·¤¤Ãͤ¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤ÎÃͤ¬¼¡¤ÎÅÁȤδð½à¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£Àµ¤·¤¤Ãͤ¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤È¿ÇÃǤµ¤ì¤Þ¤¹¡£

-Nlevel=4

-Nlevel=3 ¤Ç¼Â¹Ô¤µ¤ì¤ë²òÀϤ˲䨤ơ¢¥×¥í¥°¥é¥àÁ´ÂΤò²òÀϤ·¤Æ°ìÄê¤Î¥×¥í¥°¥é¥à¼Â¹Ô¥Ñ¥¹¤¬»ÈÍѤµ¤ì¤¿¾ì¹ç¤ËȯÀ¸¤¹¤ë¾ò·ïÉÕ¤­¥¨¥é¡¼¤âÊó¹ð¤·¤Þ¤¹¡£

¤³¤Î²òÀÏ¥ì¥Ù¥ë¤Ç¤Ï¡¢¤µ¤é¤Ë¿¤¯¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£°ìÈÌŪ¤Ë¡¢¤³¤Î²òÀÏ¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢ÉÔÀµ¤ÊÃͤËÂФ·¤Æ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬À¸À®¤µ¤ì¤ë¤³¤È¤ò½ü¤±¤Ð¡¢-Nlevel=3 ¤Î²òÀÏ¥¢¥ë¥´¥ê¥º¥à¤ÈƱ¤¸¤Ç¤¹¡£¤³¤Î¥ì¥Ù¥ë¤Ç¤Î²òÀϤËÍפ¹¤ë»þ´Ö¤Ï¡¢2 ·å (Ìó 20 Çܤ«¤é 100 ÇÜ) ¤Û¤ÉÁý²Ã¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£Í¾·×¤Ë¤«¤«¤ë»þ´Ö¤Ï¡¢ºÆµ¢¡¢¾ò·ïʸ¤Ê¤É¤ÎÌÌ¤Ç¤Î¥×¥í¥°¥é¥à¤ÎÊ£»¨¤µ¤ËÈæÎ㤷¤ÆÄ¹¤¯¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢100,000 ¹Ô¤òͤ¨¤ë¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤³¤Î¥ì¥Ù¥ë¤Î²òÀϤò¹Ô¤¦¤³¤È¤Ï¤¢¤Þ¤ê¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

-n

¥Ç¥Õ¥©¥ë¥È¤Î lint ɸ½à C ¥é¥¤¥Ö¥é¥ê¤È¤Î¸ß´¹À­¸¡ºº¤òÍÞÀ©¤·¤Þ¤¹¡£

-ox

llib-lx.ln ¤È¤¤¤¦Ì¾Á°¤Î lint ¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤·¤Þ¤¹¡£¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï¡¢lint ¤¬Âè 2 ¥Ñ¥¹¤Ç»ÈÍѤ¹¤ë .ln ¥Õ¥¡¥¤¥ë¤«¤éºîÀ®¤µ¤ì¤Þ¤¹¡£-c ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¤¹¤Ù¤Æ¤Î -o ¥ª¥×¥·¥ç¥ó¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ÉÔÍפʥá¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Ê¤¤¤Ç lib-lx.ln ¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢-x ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£lint ¥é¥¤¥Ö¥é¥ê¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬³°Éô¤«¤é¤Î»²¾ÈÀìÍѤǤ¢¤ë¾ì¹ç¤Ï¡¢-v ¥ª¥×¥·¥ç¥ó¤¬ÊØÍø¤Ç¤¹¡£ºîÀ®¤µ¤ì¤¿ lint ¥é¥¤¥Ö¥é¥ê¤Ï¡¢¸å¤Ç lint ¤¬ -lx ¤Ç¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤Ï lint ¤Î´ðËÜ·Á¼°¤ÇºîÀ®¤µ¤ì¤Þ¤¹¡£³ÈÄ¥ lint ¥â¡¼¥É¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤Ï³ÈÄ¥¥â¡¼¥É¤ÇºîÀ®¤µ¤ì¤ë¤¿¤á¡¢¤½¤ì°Ê³°¤Î¥â¡¼¥É¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£

-p

°Ü¿¢À­¤Ë´ØÏ¢¤¹¤ë°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѲÄǽ¤Ë¤·¤Þ¤¹¡£

-R<¥Õ¥¡¥¤¥ë>

cxref(1) ¤Ç»ÈÍѤ¹¤ë .ln ¥Õ¥¡¥¤¥ë¤ò <¥Õ¥¡¥¤¥ë> ¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£lint ¤¬³ÈÄ¥¥â¡¼¥É¤Çµ¯Æ°¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï³ÈÄ¥¥â¡¼¥É¤ò»ÈÍÑÉÔ²Äǽ¤Ë¤·¤Þ¤¹¡£

-s

Ê£¹ç¥á¥Ã¥»¡¼¥¸¤òñ°ì¥á¥Ã¥»¡¼¥¸¤ËÊÑ´¹¤·¤Þ¤¹¡£

-u

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Âç·¿¥×¥í¥°¥é¥à¤Î¥Õ¥¡¥¤¥ë¤Î°ìÉôʬ¤ËÂФ·¤Æ lint ¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£

-V

À½ÉÊ̾¤È¥ê¥ê¡¼¥¹»þ´ü¤òɸ½à¥¨¥é¡¼¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£

-v

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-W<¥Õ¥¡¥¤¥ë>

cflow(1) ¤Ç»ÈÍѤ¹¤ë .ln ¥Õ¥¡¥¤¥ë¤ò <¥Õ¥¡¥¤¥ë> ¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£lint ¤¬³ÈÄ¥¥â¡¼¥É¤Çµ¯Æ°¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï³ÈÄ¥¥â¡¼¥É¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£

-x

°ìÄê¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤·¤Þ¤¹¡£É½ 6-6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

-XCC=a

C++ ·Á¼°¤Î¥³¥á¥ó¥È¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢// ¤ò»ÈÍѤ·¤Æ¥³¥á¥ó¥È¤Î»Ï¤Þ¤ê¤ò¼¨¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£a ¤Ë¤Ï yes ¤Þ¤¿¤Ï no ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ï -XCC=no ¤Ç¤¹¡£-XCC ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-XCC=yes ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

-Xarch=v9

__sparcv9 ¥Þ¥¯¥í¤ò»öÁ°¤ËÄêµÁ¤·¤Æ¡¢v9 ÈǤΠlint ¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£

-Xexplicitpar=a

(SPARC) lint ¤Ë #pragma MP »ØÎá¤òǧ¼±¤¹¤ë¤è¤¦»ØÄꤷ¤Þ¤¹¡£a ¤Ë¤Ï yes ¤Þ¤¿¤Ï no ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï -Xexplicitpar=no ¤Ç¤¹¡£-Xexplicitpar ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-Xexplicitpar=yes ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

-Xkeeptmp=a

lint ¤Î¼Â¹ÔÃæ¡¢°ì»þ¥Õ¥¡¥¤¥ë¤ò¼«Æ°Åª¤Ëºï½ü¤»¤º¡¢ºîÀ®¤·¤¿¾õÂ֤Τޤޤˤ·¤Þ¤¹¡£a ¤Ë¤Ï yes ¤Þ¤¿¤Ï no ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï -Xkeeptmp=no ¤Ç¤¹¡£
-Xkeeptmp ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-Xkeeptmp=yes ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

-Xtemp=<¥Ç¥£¥ì¥¯¥È¥ê>

°ì»þ¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò <¥Ç¥£¥ì¥¯¥È¥ê> ¤ËÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¡¢°ì»þ¥Õ¥¡¥¤¥ë¤Ï /tmp ¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£

-Xtime=a

³Æ lint ¥Ñ¥¹¤Î¼Â¹Ô»þ´Ö¤òÊó¹ð¤·¤Þ¤¹¡£a ¤Ë¤Ï yes ¤Þ¤¿¤Ï no ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï -Xtime=no ¤Ç¤¹¡£-Xtime ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-Xtime=yes ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

-Xtransition=a

K&R C ¤È Sun ANSI/ISO C ¤ÎÁê°ã¤ò¸¡½Ð¤·¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£a ¤Ë¤Ï yes ¤Þ¤¿¤Ï no ¤Î¤¤¤º¤ì¤«¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï -Xtransition=no ¤Ç¤¹¡£-Xtransition ¤À¤±¤ò»ØÄꤹ¤ë¤È¡¢-Xtransition=yes ¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

-y

¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤵ¤ì¤¿¤¹¤Ù¤Æ¤Î .c ¥Õ¥¡¥¤¥ë¤ò¡¢/* LINTLIBRARY */ »ØÎá¤Ç³«»Ï¤·¤¿¾ì¹ç¤Þ¤¿¤ÏÃí¼á NOTE(LINTLIBRARY) ¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë°·¤¤¤Þ¤¹¡£lint ¥é¥¤¥Ö¥é¥ê¤Ï¡¢Ä̾/* LINTLIBRARY */ »ØÎá¤Þ¤¿¤ÏÃí¼á NOTE(LINTLIBRARY) ¤ò»ÈÍѤ·¤ÆºîÀ®¤·¤Þ¤¹¡£

lint ¤Î¥á¥Ã¥»¡¼¥¸

ÂçÉôʬ¤Î lint ¤Î¥á¥Ã¥»¡¼¥¸¤Ï´Êñ¤Ê 1 ¹Ô¤Îʸ¤Ç¡¢ÌäÂ꤬µ¯¤³¤Ã¤Æ¿ÇÃǤµ¤ì¤ë¤¿¤Ó¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Ç¸¡½Ð¤µ¤ì¤¿¥¨¥é¡¼¤Ï¥³¥ó¥Ñ¥¤¥é¤Ç¤ÏÊ£¿ô²óÊó¹ð¤µ¤ì¤Þ¤¹¤¬¡¢lint ¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤¬Â¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë²¿ÅÙ¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤è¤¦¤È¤â°ìÅÙÊó¹ð¤µ¤ì¤ë¤À¤±¤Ç¤¹¡£Ê£¹ç¥á¥Ã¥»¡¼¥¸¤Ï¡¢¥Õ¥¡¥¤¥ëÁ´°è¤ÎÌ·½â¤ËÂФ·¤Æ¡¢¤Þ¤¿»þ¤Ë¤Ï¥Õ¥¡¥¤¥ëÆâ¤ÎÌäÂê¤ËÂФ·¤Æ¤âɽ¼¨¤µ¤ì¤Þ¤¹¡£Ã±°ì¥á¥Ã¥»¡¼¥¸¤Ï¡¢¸¡ºº¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÇÌäÂ꤬ȯÀ¸¤¹¤ë¤´¤È¤ËÃΤ餻¤Þ¤¹¡£lint ¥Õ¥£¥ë¥¿¤ò»ÈÍѤ·¤Æ (¡Ölint ¥é¥¤¥Ö¥é¥ê¡×¤ò»²¾È) ³Æ¸½¾Ý¤´¤È¤Ëɽ¼¨¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤òÍ׵᤹¤ë»þ¤Ë¡¢-s ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ lint ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Ê£»¨¤Ê¥á¥Ã¥»¡¼¥¸¤ò´Êñ¤Ê¤â¤Î¤ËÊÑ´¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

lint ¤Î¥á¥Ã¥»¡¼¥¸¤Ï stderr ¤Ë½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¡£

¥¨¥é¡¼¤ª¤è¤Ó·Ù¹ð¥á¥Ã¥»¡¼¥¸¥Õ¥¡¥¤¥ë¤Ï /opt/SUNWspro/READMEs/ja °Ê²¼¤Îc_lint_messages ¤Ë¤¢¤ê¡¢C ¥³¥ó¥Ñ¥¤¥é¤Î¥¨¥é¡¼¤ª¤è¤Ó·Ù¹ð¥á¥Ã¥»¡¼¥¸¤È lint ¥×¥í¥°¥é¥à¥á¥Ã¥»¡¼¥¸¤¬¤¹¤Ù¤Æ´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¥á¥Ã¥»¡¼¥¸¤Î¿¤¯¤ÏÆÉ¤à¤À¤±¤ÇÍý²ò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£É½¼¨¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Îʸ»úÎó¤ò¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¸¡º÷¤¹¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤ÎÀâÌÀ¤ª¤è¤Ó¿¤¯¤Î¾ì¹ç¤Ï¥³¡¼¥ÉÎã¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë¥ª¥×¥·¥ç¥ó

¤¤¤¯¤Ä¤«¤Î lint ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢lint ¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë¤Ë¤Ï¡¢-erroff ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë 1 ¤Ä°Ê¾å¤Î <¥¿¥°> ¤ò»ØÄꤷ¤Æ¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¥¿¥°¤Ï¡¢-errtags=yes ¥ª¥×¥·¥ç¥ó¤Çɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

ɽ 6-6 ¤Ë lint ¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë¥ª¥×¥·¥ç¥ó¤ò¼¨¤·¤Þ¤¹¡£

ɽ 6-6   lint ¤Î¥ª¥×¥·¥ç¥ó¤ÈÍÞÀ©¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸
¥ª¥×¥·¥ç¥ó ÍÞÀ©¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸
-a
ÂåÆþ¤Ë¤è¤Ã¤Æ°ÅÌÛŪ¤Ë¤è¤ê¾®¤µ¤¤·¿¤ËÊÑ´¹¤µ¤ì¤Þ¤¹
¤è¤êÂ礭¤ÊÀ°¿ô·¿¤Ø¤ÎÊÑ´¹¤ÏÉ乿³ÈÄ¥¤¬ÉÔÀµ³Î¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹
-b
Åþã¤Ç¤­¤Ê¤¤Ê¸¤Ç¤¹
-h
Åù²Á±é»»»Ò "==" ¤Î»ÈÍѤ¬ÁÛÄꤵ¤ì¤ë¾ì½ê¤ËÂåÆþ±é»»»Ò "=" ¤¬»ÈÍѤµ¤ì
¤Æ¤¤¤Þ¤¹
±é»»»Ò "!"  ¤Î¥ª¥Ú¥é¥ó¥É¤¬Äê¿ô¤Ç¤¹
case ʸ¤òÄ̤êÈ´¤±¤Þ¤¹
¥Ý¥¤¥ó¥¿¤Î¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¶­³¦À°Îó¤¬ÉÔÀµ³Î¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹
Í¥ÀèÅÙ¤¬º®Í𤹤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹; ³ç¸Ì
ʸ¤¬µ¢·ë¤·¤Æ¤¤¤Þ¤»¤ó: if
ʸ¤¬µ¢·ë¤·¤Æ¤¤¤Þ¤»¤ó: else
-m
Âç°èŪ¤ËÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬ÀÅŪ (static) ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹
-erroff=
<
¥¿¥°>
<¥¿¥°> ¤Ç»ØÄꤷ¤¿ 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î lint ¤Î¥á¥Ã¥»¡¼¥¸
-u
̾Á°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó
̤ÄêµÁ¤Î̾Á°¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹
-v
°ú¿ô¤¬´Ø¿ôÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó
-x
̾Á°¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬»ÈÍѤâÄêµÁ¤â¤µ¤ì¤Æ¤¤¤Þ¤»¤ó


lint ¥á¥Ã¥»¡¼¥¸¤Î·Á¼°

lint ¥×¥í¥°¥é¥à¤Ë°ìÄê¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¹Ô°ÌÃÖ¤ò¼¨¤¹¥Ý¥¤¥ó¥¿¤òȼ¤Ã¤¿¾ÜºÙ¤Ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¹Ô¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Îµ¡Ç½¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ï -errfmt=f ¤Ç¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¡¢lint ¤Ï°Ê²¼¤Î¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£

¤¿¤È¤¨¤Ð¡¢¼¡¤Ë¼¨¤¹¥×¥í¥°¥é¥à Test1.c ¤Ë¤Ï¥¨¥é¡¼¤¬¤¢¤ê¤Þ¤¹¡£

1 #include <string.h>
2 static void cpv(char *s, char* v, unsigned n)
3 { int i;
4   for (i=0; i<=n; i++)
5        *v++ = *s++;
6 }
7 void main(int argc, char* argv[])
8 {
9   if (argc != 0)
10     cpv(argv[0], argc, strlen(argv[0]));
11}


¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ Test1.c ¤Ë lint ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

% lint -errfmt=src -Nlevel=2 Test1.c 

·ë²Ì¤È¤·¤Æ¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤Þ¤¹¡£

      |
      |static void cpv(char *s, char* v, unsigned n)
      |            ^  2 ¹ÔÌÜ, Test1.c
      |
      |         cpv(argv[0], argc, strlen(argv[0]));
      |                      ^  10 ¹ÔÌÜ, Test1.c
¥Ý¥¤¥ó¥¿/À°¿ô¤ÎÁȤ߹ç¤ï¤»¤ÏÉÔŬÀڤǤ¹: 2 ÈÖÌܤΰú¿ô
      |
      |static void cpv(char *s, char* v, unsigned n)
      |                               ^  2 ¹ÔÌÜ, Test1.c
      |
      |        cpv(argv[0], argc, strlen(argv[0]));
      |                      ^  10 ¹ÔÌÜ, Test1.c
      |
      |         *v++ = *s++;
      |          ^  5 ¹ÔÌÜ, Test1.c
µ¿¤ï¤·¤¤ÊýË¡¤ÇºîÀ®¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹
    v, ÄêµÁ¤µ¤ì¤¿¾ì½ê: Test1.c(2):: Test1.c(5)
    ¸Æ¤Ó½Ð¤·¥¹¥¿¥Ã¥¯:
           main()                ,Test1.c(10)
           cpv()                 ,Test1.c(5)


1 ¤Ä¤á¤Î·Ù¹ð¤Ï¡¢2 ¤Ä¤Î¥³¡¼¥É¹Ô¤Î´Ö¤ÇÌ·½â¤¬¤¢¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£2 ¤Ä¤á¤Î·Ù¹ð¤Ë¤Ï¡¢¤½¤Î»þ¤Î¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤È¥¨¥é¡¼¤ËÅþ¤ë¤Þ¤Ç¤ÎÀ©¸æ¥Õ¥í¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£

¼¡¤Ë¼¨¤¹¥×¥í¥°¥é¥à Test2.c ¤Ë¤Ï¡¢¾åµ­¤È¤Ï°Û¤Ê¤ë¼ïÎà¤Î¥¨¥é¡¼¤¬¤¢¤ê¤Þ¤¹¡£

1 #define AA(b) AR[b+l]
2 #define B(c,d) c+AA(d)
3
4 int x=0;
5
6 int AR[10]={1,2,3,4,5,6,77,88,99,0};
7
8 main()
9  {
10  int y=-5, z=5;
11  return B(y,z);
12 }


¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ Test2.c ¤Ë lint ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

% lint -errfmt=macro Test2.c

·ë²Ì¤È¤·¤Æ¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬ÆÀ¤é¤ì¤Þ¤¹¡£

      |
      | return B(y,z);
      |        ^  11 ¹ÔÌÜ, Test2.c
      |
      |#define B(c,d) c+AA(d)
      |                 ^  2 ¹ÔÌÜ, Test2.c
      |
      |#define AA(b) AR[b+l]
      |                   ^  1 ¹ÔÌÜ, Test2.c
̤ÄêµÁ¤Î¥·¥ó¥Ü¥ë: l
      |
      | return B(y,z);
      |        ^  11 ¹ÔÌÜ, Test2.c
      |
      |#define B(c,d) c+AA(d)
      |                 ^  2 ¹ÔÌÜ, Test2.c
      |
      |#define AA(b) AR[b+l]
      |                   ^  1 ¹ÔÌÜ, Test2.c
ÊÑ¿ô¤¬ÀßÄê°ÊÁ°¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹: l
lint: Test2.c Ãæ¤Î¥¨¥é¡¼; ½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÏºîÀ®¤µ¤ì¤Þ¤»¤ó
lint: 2 ²óÌܤΥѥ¹¤Ï¼Â¹Ô¤·¤Þ¤»¤ó - Test2.c Ãæ¤Î¥¨¥é¡¼


lint ¤Î»ØÎá

»öÁ°ÄêµÁ¤µ¤ì¤¿ÃÍ

¼¡¤Î»öÁ°ÄêµÁ¤Ï¤¹¤Ù¤Æ¤Î¥â¡¼¥É¤ÇÍ­¸ú¤Ç¤¹¡£

__sun
__unix
__lint
__SUNPRO_C=0x510
__`uname -s`_`uname -r
` (Îã: __SunOS_5_7)
__RESTRICST (-Xa
¤ª¤è¤Ó -Xt ¥â¡¼¥É¤Î¤ß)
__sparc
(SPARC)
__i386 (x86)
__BUILTIN_VA_ARG_INCR
__SVR4
__sparcv9
(-Xarch=v9)

¼¡¤Î»öÁ°ÄêµÁ¤Ï -Xc ¥â¡¼¥É°Ê³°¤ÇÍ­¸ú¤Ç¤¹¡£

»ØÎá

lint »ØÎá¤ò /*...*/ ¤Î·Á¼°¤ÇÃí¼á¤È¤·¤ÆÉ½µ­¤¹¤ëÊýË¡¤Ï¡¢¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¾­Íè¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¯¤Ê¤ëͽÄê¤Ç¤¹¡£»ØÎá¤òÃí¼á¤È¤·¤ÆÁÞÆþ¤¹¤ëºÝ¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤ÎÃí¼á NOTE(...) ¤È¤·¤ÆÉ½µ­¤¹¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£

°Ê²¼¤Î¤è¤¦¤Ë¥Õ¥¡¥¤¥ë note.h ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¡¢lint »ØÎá¤ò¥½¡¼¥¹¥³¡¼¥É¤ÎÃí¼á¤È¤·¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£

 #include <note.h>

lint ¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤ÎÃí¼á¤òÊ̤Υġ¼¥ë¤È¶¦Í­¤·¤Þ¤¹¡£Sun C ¥³¥ó¥Ñ¥¤¥é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢/usr/lib/note/SUNW_SPRO-lint ¥Õ¥¡¥¤¥ë¤¬¼«Æ°Åª¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢locklint ¤¬Ç§¼±¤¹¤ëÃí¼á¤Î̾Á°¤¬¤¹¤Ù¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤¿¤À¤·¡¢Sun C ¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¸¡ºº¤¹¤ë lint ¤Ï¡¢/usr/lib/note ¤È
/OPT/SUNWspro/<¸½¥ê¥ê¡¼¥¹>/note ¤ÎÁ´¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·¤Æ¡¢³ºÅö¤¹¤ëÃí¼á¤òõ¤·¤Þ¤¹¡£

¼¡¤Î¤è¤¦¤Ë¡¢´Ä¶­ÊÑ¿ô NOTEPATH ¤òÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢/usr/lib/note °Ê³°¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

setenv NOTEPATH ${NOTEPATH}: <¥Ç¥£¥ì¥¯¥È¥ê>

ɽ 6-7 ¤Ë¡¢lint »ØÎá¤Èưºî¤ò¼¨¤·¤Þ¤¹¡£

ɽ 6-7   lint »ØÎá¤Èưºî  
NOTE(ALIGNMENT(<´Ø¿ô>,n))
n=1, 2, 4, 8,
16, 32, 64, 128
lint ¤Ë¡¢´Ø¿ô·ë²Ì¤ò n ¥Ð¥¤¥È¶­³¦¤ÇÀ°Î󤵤»¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢malloc() ¤Ï¡¢char* ¤Þ¤¿¤Ï void* ¤òÊÖ¤¹¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¥ï¡¼¥É¤Ç¡¢¤Þ¤¿¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¥À¥Ö¥ë¥ï¡¼¥É¤ÇÀ°Îó¤·¤¿¥Ý¥¤¥ó¥¿¤òÊÖ¤·¤Þ¤¹¡£
ÉÔÀµ¤Ê¶­³¦À°Îó¤Ë´Ø¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£
NOTE(ARGSUSED(n))
/*ARGSUSEDn*/
»ØÎá¤Î¼¡¤ËÍè¤ë´Ø¿ô¤ËÂФ·¤Æ¡¢-v ¥ª¥×¥·¥ç¥ó¤Î¤è¤¦¤Êưºî¤ò¹Ô¤¤¤Þ¤¹¡£
°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£ »ØÎá¤Î¸å¤ËÍè¤ë´Ø¿ôÄêµÁ¤ÎºÇ½é¤Î n ¸Ä°Ê¹ß¤Î¤¹¤Ù¤Æ¤Î°ú¿ô¤òÂоݤ·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï 0 ¤Ç¡¢É¬¤º n ¤Î»ØÄ꤬ɬÍפǤ¹¡£

  • °ú¿ô¤¬´Ø¿ôÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó

  • NOTE(ARGUNUSED(<°ú¿ô>[,
    <°ú¿ô>...]))
    lint ¤¬¡¢»ØÄꤷ¤¿°ú¿ô¤Î»ÈÍѾõ¶·¤ò¸¡ºº¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹ (¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢»ØÎá¤Î¼¡¤ËÍè¤ë´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¹)¡£
    °Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£
    NOTE ¤Þ¤¿¤Ï»ØÎá¤Ç»ØÄꤵ¤ì¤¿°ú¿ô¤¹¤Ù¤Æ¤òÂоݤÈ
    ¤·¤Þ¤¹¡£
    

  • °ú¿ô¤¬´Ø¿ôÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó

  • NOTE(CONSTCOND)
    /*CONSTCOND*/
    ¾ò·ï¼°Ãæ¤ÎÄê¿ô¥ª¥Ú¥é¥ó¥É¤Ë´Ø¤¹¤ë·Ù¹ð¤òÍÞÀ©¤·¤Þ¤¹¡£
    °Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£ NOTE(CONSTANTCONDITION) ¤Þ¤¿¤Ï
    /* CONSTANTCONDITION */ ¤â»ÈÍѤǤ­¤Þ¤¹¡£
        ¾ò·ï¤Î¥³¥ó¥Æ¥­¥¹¥È¤ËÄê¿ô¤¬¤¢¤ê¤Þ¤¹
    
        ±é»»»Ò "!" ¤Î¥ª¥Ú¥é¥ó¥É¤¬Äê¿ô¤Ç¤¹
    
        ÏÀÍý¼°¤¬¾ï¤Ëµ¶¤Ç¤¹: ±é»»»Ò "&&"
    
        ÏÀÍý¼°¤¬¾ï¤Ë¿¿¤Ç¤¹: ±é»»»Ò "||" 
    

  • »ØÎá¤Î¸å¤ËÍè¤ë¸À¸ì¹½Â¤¤¬ÂоݤȤʤê¤Þ¤¹¡£

  • NOTE(EMPTY)
    /*EMPTY*/
    if ʸ¤Ë³¤¯¶õʸ¤ÎÆâÍÆ¤Ë´Ø¤¹¤ë·Ù¹ð¤òÍÞÀ©¤·¤Þ
    ¤¹¡£¤³¤Î»ØÎá¤Ï¡¢¾ò·ï¼°¤È¥»¥ß¥³¥í¥ó¤Î´Ö¤Ç»ØÄꤷ
    ¤Þ¤¹¡£¤³¤Î»ØÎá¤Ï¡¢Í­¸ú¤Ê else ʸ¤ò»ý¤Ä¶õ¤Î if 
    ʸ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¶õ¤Î 
    else ʸ¤ËÂФ¹¤ë¥á¥Ã¥»¡¼¥¸¤âÍÞÀ©¤·¤Þ¤¹¡£
    ʸ¤¬µ¢·ë¤·¤Æ¤¤¤Þ¤»¤ó: if
    (if
    ¤Î¾ò·ï¼°¤È¥»¥ß¥³¥í¥ó¤Î´Ö¤ËÁÞÆþ¤µ¤ì¤¿¾ì¹ç)
    °Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£
        ʸ¤¬µ¢·ë¤·¤Æ¤¤¤Þ¤»¤ó: else 
    
    (else ʸ¤È¥»¥ß¥³¥í¥ó¤Î´Ö¤ËÁÞÆþ¤µ¤ì¤¿¾ì¹ç)
    
    
     
    
    
    
    NOTE(FALLTHRU)
    /*FALLTHRU*/
    case ʸ¤Þ¤¿¤Ï default ¥é¥Ù¥ë¤Îʸ¤Þ¤Ç¤ÎÄ̤êÈ´¤±¤Ë´Ø¤¹¤ë·Ù¹ð¤òÍÞÀ©¤·¤Þ¤¹¡£
    ¤³¤Î»ØÎá¤Ï¡¢¥é¥Ù¥ë¤ÎľÁ°¤Ç»ØÄꤷ¤Þ¤¹¡£ °Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£ »ØÎá¤Î¸å¤ËÍè¤ë case ʸ¤¬ÂоݤȤʤê¤Þ¤¹¡£
    NOTE(FALLTHROUGH) ¤Þ¤¿¤Ï
    /* FALLTHROUGH */. ¤â»ÈÍѤǤ­¤Þ¤¹¡£
        case ʸ¤òÄ̤êÈ´¤±¤Þ¤¹
    
    NOTE(LINTED (<¥á¥Ã¥»¡¼¥¸>))/*LINTED [<¥á¥Ã¥»¡¼¥¸>]*/ »ÈÍѤµ¤ì¤Ê¤¤ÊÑ¿ô¤Þ¤¿¤Ï´Ø¿ô¤Ë´Ø¤¹¤ë·Ù¹ð¤ò½ü¤¯¡¢¥Õ¥¡¥¤¥ëÆâ¤Î·Ù¹ð¤ò¤¹¤Ù¤ÆÍÞÀ©¤·¤Þ¤¹¡£¤³¤Î»ØÎá¤Ï¡¢lint ¤Î·Ù¹ð¤¬É½¼¨¤µ¤ì¤¿¹Ô¤ÎľÁ°¤Ç»ØÄꤷ¤Þ¤¹¡£
    -k ¥ª¥×¥·¥ç¥ó¤Ï¡¢lint ¤¬¤³¤Î»ØÎá¤ò°·¤¦ÊýË¡¤òÊѹ¹¤·¤Þ¤¹¡£lint ¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ëÂå¤ï¤ê¤Ë¡¢¥³¥á¥ó¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£
    ¤³¤Î»ØÎá¤Ï¡¢lint ¼Â¹Ô¸å¤Ë¥Õ¥£¥ë¥¿¤ò¹Ô¤¦¤¿¤á¤Î
    -s ¥ª¥×¥·¥ç¥ó¤ÈÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¡£ -k ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢»ØÎá¤Î¸å¤ËÍè¤ë¥³¡¼¥É¹Ô¤Î²¼µ­°Ê³°¤Î¥Õ¥¡¥¤¥ëÆâÌäÂê¤Ë°¤¹¤ë¤¹¤Ù¤Æ¤Î·Ù¹ð¤òÍÞÀ©¤·¤Þ¤¹¡£
        °ú¿ô¤¬´Ø¿ôÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó
    
        Àë¸À¤¬¥Ö¥í¥Ã¥¯Ãæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó
    
        ÊÑ¿ô¤¬´Ø¿ôÃæ¤ÇÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤¬»ÈÍѤµ¤ì¤Æ
    ¤¤¤Þ¤»¤ó
    
        ÀÅŪ¥·¥ó¥Ü¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó
    
        ÊÑ¿ô¤¬´Ø¿ôÃæ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó
    
    <¥á¥Ã¥»¡¼¥¸> ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
    NOTE(LINTLIBRARY)
    /*LINTLIBRARY*/
    -o ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤³¤Î»ØÎ᤬ÀèÆ¬¤ËÉÕ¤¯ .c ¥Õ¥¡¥¤¥ëÃæ¤ÎÄêµÁ¤À¤±¤ò¥é¥¤¥Ö¥é¥ê ·ln ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£¥Õ¥¡¥¤¥ëÆâ¤Ç»ÈÍѤµ¤ì¤Ê¤¤´Ø¿ô¤ª¤è¤Ó´Ø¿ô¤Î°ú¿ô¤Ë´Ø¤¹¤ëÆâÍÆ¤òÍÞÀ©¤·¤Þ¤¹¡£
    NOTE(NOTREACHED)
    /*NOTREACHED*/
    ÅþãÉԲĥ³¡¼¥É¤Ë´Ø¤¹¤ë¥³¥á¥ó¥È¤òŬÀڤʻþÅÀ¤ÇÄä»ß¤·¤Þ¤¹¡£¤³¤Î¥³¥á¥ó¥È¤Ï¡¢Ä̾exit(2) ¤Ê¤É¤Î¡¢´Ø¿ô¤ËÂФ¹¤ë¥³¡¼¥ë¤Îľ¸å¤Ë°ÌÃÖ¤·¤Þ¤¹¡£
    °Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£
        Åþã¤Ç¤­¤Ê¤¤Ê¸¤Ç¤¹
    
    »ØÎá¤Î¸å¤ËÍè¤ëÅþ㤵¤ì¤Ê¤¤Ê¸¤¬Âоݤξì¹ç¡£
    
        case ʸ¤òÄ̤êÈ´¤±¤Þ¤¹
    »ØÎá¤Î¸å¤Î case ʸ¤Ç¡¢»ØÎá¤ÎÁ°¤Î case ʸ¤«¤éÅþ 㤵¤ì¤Ê¤¤¤â¤Î¤¬Âоݤξì¹ç¡£
        ´Ø¿ô¤¬ÃͤòÊÖ¤µ¤º¤Ë½ªÎ»¤·¤Æ¤¤¤Þ¤¹
    NOTE(PRINTFLIKE(n))
    NOTE(PRINTFLIKE
    (<´Ø ¿ô>,n))/*PRINTFLIKEn*/
    »ØÎá¤Î¸å¤ËÍè¤ë´Ø¿ôÄêµÁ¤ÎÂè n ÈÖÌܤΰú¿ô¤ò [fs]printf() ¤Î½ñ¼°Ê¸»úÎó¤È¤·¤Æ°·¤¤¡¢²¼µ­¤Î¥á¥Ã¥»¡¼¥¸¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£»Ä¤ê¤Î°ú¿ô¤ÈÊÑ´¹»Ø¼¨»Ò¤Î´Ö¤ÎÉÔÀ°¹ç¤âÂоݤˤ·¤Þ¤¹¡£lint ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤ÇÄ󶡤µ¤ì¤ë [fs]printf() ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Î¥¨¥é¡¼¤ËÂФ·¤Æ¤³¤ì¤é¤Î·Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£NOTE ·Á¼°¤Î¾ì¹ç¤Ï¡¢É¬¤º n ¤ò»ØÄꤷ¤Þ¤¹¡£
        ½ñ¼°Ê¸»úÎó¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó
    
        ½ñ¼°¤«¤é»²¾È¤µ¤ì¤ë°ú¿ô¤¬Â­¤ê¤Þ¤»¤ó
    
        ½ñ¼°¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤Ê¤¤°ú¿ô¤¬¤¢¤ê¤Þ¤¹
    
    NOTE(PROTOLIB(n))
    /*PROTOLIB
    n*/
    n ¤¬ 1 ¤Ç NOTE(LINTLIBRARY) ¤Þ¤¿¤Ï /* LINTLIBRARY */ ¤¬»ÈÍѤµ¤ì¤ë¾ì¹ç¡¢¤³¤Î»ØÎ᤬ÀèÆ¬¤ËÉÕ¤¯ .c ¥Õ¥¡¥¤¥ë¤Î´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À¤À¤±¤ò¥é¥¤¥Ö¥é¥ê .ln ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï½èÍý¤ò¼è¤ê¾Ã¤¹ 0 ¤Ç¤¹¡£NOTE ·Á¼°¤Î¾ì¹ç¤Ï¡¢É¬¤º n ¤ò»ØÄꤷ¤Þ¤¹¡£
    NOTE(SCANFLIKE(n))
    NOTE(SCANLIKE(<´Ø¿ô>,n))
    /*SCANFLIKEn*/
    ´Ø¿ôÄêµÁ¤ÎÂè n ÈÖÌܤΰú¿ô¤¬ [fs]scanf() ¤Î½ñ¼°Ê¸»úÎó¤È¤·¤Æ°·¤ï¤ì¤ë¤³¤È°Ê³°¤Ï
    NOTE(PRINTFLIKE(n)) ¤Þ¤¿¤Ï /* PRINTFLIKEn */ ¤ÈƱ¤¸¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢lint ¤Ïɸ½à C ¥é¥¤¥Ö¥é¥ê¤ÇÄ󶡤µ¤ì¤ë [fs]scanf() ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Î¥¨¥é¡¼¤ËÂФ··Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£NOTE ·Á¼°¤Î¾ì¹ç¤Ï¡¢É¬¤º n ¤ò»ØÄꤷ¤Þ¤¹¡£
    NOTE(VARARGS(n))
    NOTE(VARARGS(<´Ø¿ô>,n))
    /*VARARGSn*/
    »ØÎá¤Î¸å¤ËÍè¤ë´Ø¿ôÀë¸À¤ÎÃæ¤Î²ÄÊÑ¿ô¤Î°ú¿ô¤ò¸¡ºº¤¹¤ëÄ̾ï¤Î½èÍý¤òÍÞÀ©¤·¤Þ¤¹¡£ºÇ½é¤Î n ¸Ä¤Î°ú¿ô¤Î¥Ç¡¼¥¿·¿¤ò¸¡ºº¤·¤Þ¤¹¡£n ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢n=0 ¤È¤ß¤Ê¤·¤Þ¤¹¡£¿·µ¬¤Î¥³¡¼¥É¤ò½ñ¤¯¾ì¹ç¤ä¥³¡¼¥É¤ò¹¹¿·¤¹¤ë¾ì¹ç¡¢ËöÈø¤Ë¤Ï¾Êάµ­¹æ (...) ¤ò»ÈÍѤ¹¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£ ¤³¤Î»ØÎá¤Îľ¸å¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ë´Ø¤·¤Æ¤Ï¡¢°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬ÍÞÀ©¤µ¤ì¤Þ¤¹¡£

  • ²ÄÊÑ¿ô¤Î°ú¿ô¤Ç´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Þ¤¹

    n °Ê¾å¤Î°ú¿ô¤ò»ý¤Ä´Ø¿ô¤ËÂФ¹¤ë¸Æ¤Ó½Ð¤·¤òÂоݤˤ·¤Þ¤¹¡£NOTE ·Á¼°¤Î¾ì¹ç¤Ï¡¢É¬¤º n ¤ò»ØÄꤷ¤Þ¤¹¡£
  • lint ¤Î»²¹Í¾ðÊó¤ÈÎã

    lint ¤¬¹Ô¤¦¸¡ºº¡¢lint ¥é¥¤¥Ö¥é¥ê¡¢¤ª¤è¤Ó lint ¥Õ¥£¥ë¥¿¤Ê¤É¤Ë´Ø¤¹¤ë lint ¤Î»²¹Í¾ðÊó¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

    lint ¤¬¹Ô¤¦¸¡ºº

    lint ¸ÇÍ­¤Î¿ÇÃǤϡ¢Ì·½â¤·¤¿»È¤¤Êý¡¢°Ü¿¢ÉÔǽ¤Î¥³¡¼¥É¡¢µ¿¤ï¤·¤¤¸À¸ì¹½Â¤¤Î 3 ¤Ä¤Î¹­¤¤¾ò·ï¥«¥Æ¥´¥ê¤ËÂФ·¤ÆÉ½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤ÎÀá¤Ç¤Ï¡¢³Æ¥«¥Æ¥´¥ê¤Ë¤ª¤±¤ë lint ¤Îưºî¤ÎÎã¤ò¼¨¤·¡¢¤É¤Î¤è¤¦¤ÊÂбþ¤¬²Äǽ¤«¤òÀâÌÀ¤·¤Þ¤¹¡£

    À°¹çÀ­¤Î¸¡ºº

    ¥Õ¥¡¥¤¥ëÁ´°è¤È¥Õ¥¡¥¤¥ëÆâÉô¤Ë¤ª¤±¤ëÊÑ¿ô¡¢°ú¿ô¡¢´Ø¿ô¤ÎÌ·½â¤·¤¿»ÈÍѤò¸¡ºº¤·¤Þ¤¹¡£³µ¤·¤Æ lint ¤¬¸Å¤¤¥¹¥¿¥¤¥ë¤Î´Ø¿ô¤ËÂФ·¤Æ¸¡ºº¤·¤Æ¤¤¤¿¤Î¤ÈƱÍͤˡ¢¥×¥í¥È¥¿¥¤¥×¤Î»ÈÍÑ¡¢Àë¸À¡¢°ú¿ô¤ò¸¡ºº¤·¤Þ¤¹¡£¥×¥í¥°¥é¥à¤¬´Ø¿ô¥×¥í¥È¥¿¥¤¥×¤ò»ÈÍѤ·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢lint ¤Ï´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤´¤È¤Ë¥³¥ó¥Ñ¥¤¥é¤è¤ê¸·¤·¤¯°ú¿ô¤Î¿ô¤È·¿¤ò¸¡ºº¤·¤Þ¤¹¡£lint ¤Ï¡¢[fs]printf() ¤È [fs]scanf() ¤ÎÀ©¸æÊ¸»úÎó¤ÎÊÑ´¹»Ø¼¨»Ò¤È°ú¿ô¤ÎÉÔ°ìÃפ⼱Ê̤·¤Þ¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

    ¤·¤¿¤¬¤Ã¤Æ¡¢°ì½ï¤ËÆÉ¤ß¹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¤¹¤Ù¤Æ¤Ë¤Ç¤Ï¤Ê¤¯¤½¤Î°ìÉô¤Ë lint ¤¬Å¬ÍѤµ¤ì¤ë¤È¡¢lint ¤Ï¼¡¤Î¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤·¤Þ¤¹¡£
    1. ¤½¤Î¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤¿´Ø¿ô¤ÈÊÑ¿ô¤¬Â¾¤Î¾ì½ê¤ÇÄêµÁ¤Þ¤¿¤Ï»ÈÍѤµ¤ì¤¿¡£
    2. ¤½¤Î¥Õ¥¡¥¤¥ë¤Ç»ÈÍѤµ¤ì¤¿´Ø¿ô¤ÈÊÑ¿ô¤¬Â¾¤Î¾ì½ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤¿¡£
    3. ¤½¤Î¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô¤ÈÊÑ¿ô¤¬Â¾¤Î¾ì½ê¤Ç»ÈÍѤµ¤ì¤¿¡£
    a ¤Î¾ì¹ç¤òÍÞÀ©¤¹¤ë¤Ë¤Ï -x ¥ª¥×¥·¥ç¥ó¤ò¡¢b ¤È c ¤Î¾ì¹ç¤òÍÞÀ©¤¹¤ë¤Ë¤Ï -u ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

    °Ü¿¢À­¤Î¸¡ºº

    lint ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤¤¤¯¤Ä¤«¤Î°Ü¿¢ÉÔǽ¥³¡¼¥É¤òÃΤ餻¤Þ¤¹¡£lint ¤¬ -p ¤Þ¤¿¤Ï
    -Xc ¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¤µ¤é¤Ë¿¤¯¤Î¥±¡¼¥¹¤¬¿ÇÃǤµ¤ì¤Þ¤¹¡£-Xc ¤Ë¤è¤ê¡¢lint ¤Ï ANSI/ISO C µ¬³Ê¤Ë°ìÃפ·¤Ê¤¤¸À¸ì¹½Â¤¤ò¸¡ºº¤·¤Þ¤¹¡£-p ¤È -Xc ¤Î¤â¤È¤Çȯ¹Ô¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Ë´Ø¤·¤Æ¤Ï¡¢¡Ölint ¥é¥¤¥Ö¥é¥ê¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

    -p ¥ª¥×¥·¥ç¥ó¤Ç¸Æ¤Ó½Ð¤·¤¿ lint ¤Ï¡¢ÉáÄ̤Πchar ¤¬Éé¤ÎÃͤò¼è¤ë²ÄǽÀ­¤¬¤¢¤ë¤è¤¦¤ÊÈæ³Ó¤ò¤¹¤Ù¤Æ¸¡ºº¤·¤Þ¤¹¡£¤·¤«¤·¾åµ­¤ÎÎã¤Ç¤Ï¡¢c ¤ò signed char ¤ÇÀë¸À¤·¤Æ¤â¡¢ÌäÂ꤬½üµî¤µ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¿ÇÃǤ¬½üµî¤µ¤ì¤ë¤À¤±¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ï¡¢getchar() ¤¬ÆþÎϲÄǽ¤Êʸ»ú¤ÈÌÀ³Î¤Ê EOF ÃͤòÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢char ¤¬¤½¤ÎÃͤò³ÊǼ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤¿¤á¤Ç¤¹¡£¤³¤ì¤Ï¡¢½èÍý·Ï¤´¤È¤ËÄêµÁ¤µ¤ì¤ëÉ乿³ÈÄ¥¤«¤éÀ¸¤º¤ëºÇ¤â°ìÈÌŪ¤ÊÎã¤Ç¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢lint ¤Î°Ü¿¢À­¥ª¥×¥·¥ç¥ó¤òÃí°Õ¿¼¤¯»ÈÍѤ¹¤ë¤È°Ü¿¢À­¤Ë´Ø·¸¤·¤Ê¤¤¥Ð¥°¤òȯ¸«¤¹¤ë¤Î¤ËÌòΩ¤Ä¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï c ¤ò
    int ¤ÇÀë¸À¤·¤Þ¤¹¡£

    ¿ÇÃǤϡ¢-a ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤êÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤É¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ lint ¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¡¢Â¾¤Î¿ÇÃǤò¤âÍÞÀ©¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£2 ¤Ä°Ê¾å¤Î¿ÇÃǤòÍÞÀ©¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ölint ¥é¥¤¥Ö¥é¥ê¡×¤Î¥ê¥¹¥È¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

    -h ¤ò»ØÄꤷ¤Æ lint ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤³¤Î¿ÇÃǤòÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¤â¤Þ¤¿¡¢Â¾¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ÈÆÍѥݥ¤¥ó¥¿ void * ¤ò»ÈÍѤ¹¤ì¤Ð¾¤Î±Æ¶Á¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    ¤³¤ÎÎã¤Ç¤Î a[1] ¤ÎÃͤϡ¢¤¢¤ë¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï 1¡¢Ê̤Υ³¥ó¥Ñ¥¤¥é¤Ç¤Ï 2 ¤È¤¤¤¦²ÄǽÀ­¤â¤¢¤ê¤Þ¤¹¡£¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍý±é»»»Ò & ¤¬ÏÀÍý±é»»»Ò && ¤ÎÂå¤ï¤ê¤Ë¸í¤Ã¤Æ»ÈÍѤµ¤ì¤ë¤È¡¢¤³¤Î¿ÇÃǤò°ú¤­µ¯¤³¤·¤Þ¤¹¡£

    if ((c = getchar()) != EOF & c != '0')
    

    µ¿¤ï¤·¤¤¸À¸ì¹½Â¤

    lint ¤Ï¡¢¥×¥í¥°¥é¥Þ¤Î°Õ¿Þ¤Ë¤ÏÈ¿¤¹¤ë¤¬¡¢¸À¸ì¹½Â¤¾å¤ÏÀµ¤·¤¤²Õ½ê¤Ë¤Ä¤¤¤Æ¤âÊó¹ð¤·¤Þ¤¹¡£°Ê²¼¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

    °ìÊý¡¢¼¡¤Î 2 ¤Ä¤Î¥Æ¥¹¥È¤ÏƱÅù¤Ç¤¹¡£

    unsigned x;
    
    if (x > 0) ...
    

    if (x != 0) ...
    

    ºÇ½é¤ÎÎã¤Ï°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£lint ¤Ï¡¢Éé¤ÎÄê¿ô¤Þ¤¿¤Ï 0 ¤È unsigned ÊÑ¿ô¤È¤Îµ¿¤ï¤·¤¤Èæ³Ó¤òÃΤ餻¤Þ¤¹¡£unsigned ÊÑ¿ô¤òÉé¿ô¤Î¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ÈÈæ³Ó¤¹¤ë¤Ë¤Ï¡¢¤½¤ÎÉé¿ô¤ò unsigned ¤Ë¥­¥ã¥¹¥È¤·¤Þ¤¹¡£

    if (u == (unsigned) -1) ...
    

    ¤Þ¤¿¤Ï¡¢ÀÜÈø¼­ U ¤ò»ÈÍѤ·¤Þ¤¹¡£

    if (u == -1U) ...
    

    ¥Ó¥Ã¥Èñ°Ì¤Î±é»»»Ò & ¤ÎÍ¥ÀèÅÙ¤ÏÏÀÍý±é»»»Ò == ¤è¤êÄ㤤¤¿¤á¡¢¼°¤Ï¥æ¡¼¥¶¡¼¤Î°Õ¿Þ¤È¤Ï°Û¤Ê¤ë¼¡¤Î¤è¤¦¤Ê¼°¤È¤·¤ÆÉ¾²Á¤µ¤ì¤Þ¤¹¡£

    if (x & (a == 0)) ...
    

    -h ¤ò»ØÄꤷ¤Æ lint ¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¤³¤Î¿ÇÃǤÏÍÞÀ©¤µ¤ì¤Þ¤¹¡£

    lint ¥é¥¤¥Ö¥é¥ê

    lint ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Æ¡¢¸Æ¤Ó½Ð¤·¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤ò¸¡ºº¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£´Ø¿ôÌá¤ê·¿¤ÎÀë¸À¡¢´Ø¿ô¤¬´üÂÔ¤¹¤ë°ú¿ô¤Î¿ô¤È·¿¤Ê¤É¤ò¸¡ºº¤·¤Þ¤¹¡£É¸½à lint ¥é¥¤¥Ö¥é¥ê¤Ï¡¢C ¸À¸ì½èÍý·Ï¤Ç¶¡µë¤µ¤ì¤ë¥é¥¤¥Ö¥é¥ê¤ËÂбþ¤·¡¢°ìÈ̤ˤϥ·¥¹¥Æ¥à¤Îɸ½à°ÌÃ֤Ǥ¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£´·Îã¤Ç¤Ï¡¢lint ¥é¥¤¥Ö¥é¥ê¤Ï llib-lx.ln ¤È¤¤¤¦·Á¤Î̾Á°¤ò»ý¤Á¤Þ¤¹¡£

    lint ɸ½à C ¥é¥¤¥Ö¥é¥ê¤Î llib-lc.ln ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç lint ¥³¥Þ¥ó¥É¹Ô¤ËÄɲ䵤ì¤Þ¤¹¡£¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤Î¸ß´¹À­¤Î¸¡ºº¤Ï¡¢-n ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤êÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤Î¾¤Î lint ¥é¥¤¥Ö¥é¥ê¤Ï¡¢-l ¤ËÂФ·¤Æ°ú¿ô¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¼¡¤Î¥³¥Þ¥ó¥É¹Ô¤Ï¡¢<¥Õ¥¡¥¤¥ë 1>.c ¤È
    <¥Õ¥¡¥¤¥ë 2>.c ¤Î´Ø¿ô¤ÈÊÑ¿ô¤Î»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¡¢lint ¥é¥¤¥Ö¥é¥ê llib-lx.ln ¤È¤Î¸ß´¹À­¤ò¸¡ºº¤¹¤ë¤è¤¦ lint ¤Ë»Ø¼¨¤·¤Þ¤¹¡£

    % lint -lx <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c
    

    ÄêµÁ¤À¤±¤«¤é¤Ê¤ë¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤Ï¡¢¸·Ì©¤ËÄ̾ï¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤È .ln ¥Õ¥¡¥¤¥ë¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£¤¿¤À¤·¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤Ç´Ø¿ô¤ÈÊÑ¿ô¤¬Ì·½â¤·¤¿¤Þ¤Þ»ÈÍѤµ¤ì¤ë¤«¡¢¤Þ¤¿¤Ï¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤â¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤´Ø¿ô¤ÈÊÑ¿ô¤ËÂФ·¤Æ¤Ï·Ù¹ð¤ò½Ð¤·¤Þ¤»¤ó¡£

    ¼«Ê¬¤Î lint ¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Ë NOTE(LINTLIBRARY) »ØÎá¤òÁÞÆþ¤·¡¢¼¡¤¤¤Ç -o ¥ª¥×¥·¥ç¥ó¤È¤½¤Î¥é¥¤¥Ö¥é¥ê̾¤òÍ¿¤¨¤ë -l ¥ª¥×¥·¥ç¥ó¤È¶¦¤Ë¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ lint ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£

    % lint -ox <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c
    

    ¾åµ­¤Î¥³¥Þ¥ó¥É¹Ô¤Ë¤è¤ê¡¢NOTE(LINTLIBRARY) ¤¬ÀèÆ¬¤ËÉÕ¤¤¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤ÎÄêµÁ¤À¤±¤¬¥Õ¥¡¥¤¥ë llib-lx.ln ¤Ë½ñ¤­¹þ¤Þ¤ì¤Þ¤¹ (lint ¤Î -o ¤È cc ¤Î -o ¤ÎÎà»÷¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤)¡£¥é¥¤¥Ö¥é¥ê¤Ï¡¢Æ±Íͤ˴ؿô¥×¥í¥È¥¿¥¤¥×Àë¸À¤Î¥Õ¥¡¥¤¥ë¤«¤éºîÀ®¤µ¤ì¤Þ¤¹¡£¤¿¤À¤·¡¢NOTE(LINTLIBRARY) ¤È NOTE(PROTOLIB(n)) ¤ÎξÊý¤¬Àë¸À¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤ËÁÞÆþ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÏÊ̤Ǥ¹¡£n ¤¬ 1 ¤Î¾ì¹ç¡¢¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï¸Å¤¤¥¹¥¿¥¤¥ë¤ÎÄêµÁ¤ÈƱÍͤ˥饤¥Ö¥é¥ê .ln ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¡£n ¤¬ ¥Ç¥Õ¥©¥ë¥È¤Î 0 ¤Î¾ì¹ç¡¢½èÍý¤Ï¥­¥ã¥ó¥»¥ë¤µ¤ì¤Þ¤¹¡£-y ¤ò»ØÄꤷ¤Æ lint ¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¡¢lint ¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    % lint -y -ox <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c
    

    ¾åµ­¤Î¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤵ¤ì¤¿³Æ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï NOTE(LINTLIBRARY) ¤Ç³«»Ï¤·¤¿¤«¤Î¤è¤¦¤Ë°·¤ï¤ì¡¢¤½¤ÎÄêµÁ¤À¤±¤¬ llib-lx.ln ¤Ë½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¡£

    ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢lint ¤Ïɸ½à°ÌÃÖ¤Ç lint ¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤·¤Þ¤¹¡£É¸½à°ÌÃְʳ°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç lint ¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¤è¤¦¤Ë lint ¤Ë»Ø¼¨¤¹¤ë¤Ë¤Ï¡¢-L ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£

    % lint -L<¥Ç¥£¥ì¥¯¥È¥ê> -lx <¥Õ¥¡¥¤¥ë 1>.c <¥Õ¥¡¥¤¥ë 2>.c
    

    ³ÈÄ¥¥â¡¼¥É¤Ç¤Ï¡¢lint ¤Ï´ðËܥ⡼¥É¤ÇÀ¸À®¤µ¤ì¤ë .ln ¥Õ¥¡¥¤¥ë¤è¤ê¿¤¯¤Î¾ðÊ󤬳ÊǼ¤µ¤ì¤¿ .ln ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£³ÈÄ¥¥â¡¼¥É¤Î lint ¤Ï¡¢´ðËܥ⡼¥É¤Þ¤¿¤Ï³ÈÄ¥¥â¡¼¥É¤Î¤É¤Á¤é¤Î lint ¤ÇÀ¸À®¤µ¤ì¤¿ .ln ¥Õ¥¡¥¤¥ë¤Ç¤â¤¹¤Ù¤ÆÆÉ¤ß¼è¤Ã¤ÆÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£´ðËܥ⡼¥É¤Î lint ¤Ï¡¢´ðËܥ⡼¥É¤Î lint ¤òÍѤ¤¤ÆÀ¸À®¤µ¤ì¤¿ .ln ¥Õ¥¡¥¤¥ë¤À¤±¤òÆÉ¤ß¼è¤Ã¤ÆÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢lint ¤Ï /usr/lib ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ï´ðËÜ lint ·Á¼°¤Ç¤¹¡£makefile ¤ò°ìÅټ¹Ԥ·¤Æ¿·¤·¤¤·Á¼°¤Î³ÈÄ¥ lint ¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ì¤Ð¡¢³ÈÄ¥ lint ¤ò¤è¤ê¸úΨŪ¤ËÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£makefile ¤ò¼Â¹Ô¤·¤Æ¿·¤·¤¤¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£

    % cd /opt/SUNWspro/WS6/src/lintlib; make
    

    ¤³¤³¤Ç¡¢/opt/SUNWspro/WS6 ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡£makefile ¤Î¼Â¹Ô¸å¡¢lint ¤Ï /usr/lib ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥é¥¤¥Ö¥é¥ê¤ÎÂå¤ï¤ê¤Ë³ÈÄ¥¥â¡¼¥É¤Î¿·¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

    »ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ïɸ½à°ÌÃÖ¤ÎÁ°¤Ë¸¡º÷¤µ¤ì¤Þ¤¹¡£

    lint ¥Õ¥£¥ë¥¿

    lint ¥Õ¥£¥ë¥¿¤Ï¡¢¥×¥í¥¸¥§¥¯¥È¸ÇÍ­¤Î¥Ý¥¹¥È¥×¥í¥»¥Ã¥µ (¸å½èÍý) ¤Ç¤¹¡£Åµ·¿Åª¤ÊÎã¤Ç¤Ï awk ¥¹¥¯¥ê¥×¥È¤äÎà»÷¤Î¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤Æ lint ¤Î½ÐÎϤòÆÉ¤ß¼è¤ê¡¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥¸¥§¥¯¥È¤¬ÆÃ¤ËÌäÂê¤Ê¤¤¤ÈȽÃǤ·¤¿¥á¥Ã¥»¡¼¥¸¤ò¼Î¤Æ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢»þ¡¹¤Þ¤¿¤Ï¾ï¤Ë̵»ë¤µ¤ì¤ëÃͤòÊÖ¤¹Ê¸»úÎó´Ø¿ô¤Ê¤É¤Ç¤¹¡£lint ¥ª¥×¥·¥ç¥ó¤È»ØÎá¤À¤±¤Ç¤Ï½ÐÎϤËÂФ·¤Æ½½Ê¬¤ÊÀ©¸æ¤¬Í¿¤¨¤é¤ì¤Ê¤¤»þ¤Ï¡¢lint ¥Õ¥£¥ë¥¿¤ò»ÈÍѤ¹¤ë¤È¥«¥¹¥¿¥Þ¥¤¥º¤µ¤ì¤¿¿ÇÃÇ¥ì¥Ý¡¼¥È¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    lint ¤Î 2 ¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Õ¥£¥ë¥¿¤ò³«È¯¤¹¤ëºÝ¤ËÆÃ¤ËÌòΩ¤Á¤Þ¤¹¡£

    /* LINTED [<¥á¥Ã¥»¡¼¥¸>]*/ ¤Î¤¢¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ -k ¤¬»ÈÍѤµ¤ì¤Ê¤¤¾ì¹ç¤Î lint ¤Îưºî¤Ë¤Ä¤¤¤Æ¤Ï¡¢É½ 6-7 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

    ¥µ¥ó¡¦¥Þ¥¤¥¯¥í¥·¥¹¥Æ¥à¥º³ô¼°²ñ¼Ò
    Copyright information. All rights reserved.
    ¥Û¡¼¥à   |   Ìܼ¡   |   Á°¥Ú¡¼¥¸¤Ø   |   ¼¡¥Ú¡¼¥¸¤Ø   |   º÷°ú