【发布时间】:2016-03-24 04:07:03
【问题描述】:
我正在处理一些包含以下功能的遗留代码。总之,该函数从文本文件中读取一行,去除前导/尾随空格和换行符,检查错误,并在成功时返回字符串中的字符数,在错误时返回 -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)但它有警告:
警告:调用结果未被使用
【问题讨论】:
-
它在哪一行报告该错误?
-
我认为您需要向我们展示函数调用。
-
在函数前写入
(void)。例如(void)readline(...