-1
私は以下の機能を含むいくつかのレガシーコードに取り組んでいます。要約すると、この関数は、テキストファイルから行を読み込み、先頭と末尾の空白と改行を取り除き、エラーをチェックし、成功した場合は文字列の文字数を返し、エラーの場合は-1を返します。警告を消すためのヒントを教えてもらえますか?私はそれがエラーではないことを知っているが、コードを改善したい。ありがとう!コンパイラの警告を取り除く "警告:呼び出しの結果が使用されていない"
static int readline(file *mf, char *buf, int n, int strip) {
if (!buf || n < 1 || !mf) return seterror(MDIO_BADPARAMS);
// Read the line
fgets(buf, n, mf->f);
// End of file reached?
if (feof(mf->f)) return seterror(MDIO_EOF);
// File I/O error?
if (ferror(mf->f)) return seterror(MDIO_IOERROR);
// comment line?
if (buf[0] == '#') return readline(mf,buf,n,strip);
// Strip whitespace
if (strip) strip_white(buf);
return strlen(buf);
}
関数は(NVCC)をコンパイルすることができますが、それは警告があります:
warning: result of call is not used
何行、それは上のそのエラーを報告しない:結果を確認するだけで、この問題を解決するには
? – duskwuff
私は関数呼び出しを表示する必要があると思います。 –
関数の前に '(void)'を書いてください。例えば、(void)readline(... ' – BLUEPIXY