lintで警告が出る例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/20 18:04 UTC 版)
int foo(int count) { int sum = 0; int i; for (i = 1; i <= count; ++i) { sum += i; } if (sum >= 100) { return sum; }} 上記の例の場合、foo() は、sum が100以上であれば値を返すが、それ以外の時には値を返さない。これはC言語の構文的には合法だが、実行時エラーなどの未定義動作を引き起こす。そのため、lint では警告が出る。 ただ、最近[いつ?]のコンパイラは、細かな警告やエラーを出す機能が強化されているため、以前は lint を使わなければ検出できなかった類のミスも、コンパイル段階で検出できるようになっているものがある。上記の例は、Microsoft Visual C++では既定で C4715 の警告が生成され、コンパイルオプション/we"4715"を指定することでコンパイルエラーになる。GCCやClangではコンパイルオプション-Wreturn-typeを指定することで警告が生成され、また-Werror=return-typeを指定することでコンパイルエラーになる。 後発のプログラミング言語では安全性を考慮して、上記のようなコードを常に非合法とし、必ずコンパイルエラーにしてしまう仕様となっているもののほうが多い。C言語では仕様により動作が厳密に規定されていない事項が非常に多く、そのためコンパイラやlintによる警告に頼らなければならないことが多い。
※この「lintで警告が出る例」の解説は、「lint」の解説の一部です。
「lintで警告が出る例」を含む「lint」の記事については、「lint」の概要を参照ください。
- lintで警告が出る例のページへのリンク