void
argmatch_valid (const char *const *arglist,
const char *vallist, size_t valsize)
{
size_t i;
const char *last_val = NULL;
fprintf (stderr, _("Valid arguments are:"));
for (i = 0; arglist[i]; i++)
if ((i == 0)|| memcmp (last_val, vallist + valsize * i, valsize))
{
fprintf (stderr, "\n - `%s'", arglist[i]);
last_val = vallist + valsize * i;
}
else
{
fprintf (stderr, ", `%s'", arglist[i]);
}
putc ('\n', stderr);
}
虽然我已将stdio.h包含在我的.c文件中
,但我得到了以下内容warning C4013: 'fprintf' undefined; assuming extern returning int error C2065: 'stderr' : undeclared identifier warning C4013: 'putc' undefined; assuming extern returning int
我想通过#pragma warning(禁用:4013)禁用警告,但想编译代码干净。
提前致谢
答案 0 :(得分:8)
虽然stdio.h应该可以工作,但有时你也需要包含stdlib.h。包括以下内容:
#include <stdio.h>
#include <stdlib.h>
声明这两个包含在相同 .C文件的TOP中,定义了上面的argmatch_valid函数。
我的水晶球表明,你认为你所包含的stdio.h正在被评论或其他预处理器部分包裹起来。也许你可以发布你的整个源文件。有人可能会发现真正的错误。