Visual Studio 2008vfprintf导致运行时错误
我正在使用下面的源代码编译好使用linux gcc 4.4.1。
不过,我想在Windows上编译使用VS 2008编译的C代码XP SP3。
我上调用vfprintf一个运行时错误。而且__func__
给我一个编译错误。 “未声明的标识符”。我认为__func__
是在stdarg.h文件中定义的。
非常感谢任何建议,
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
void log_msg(FILE *out, const char *fmt, ...);
int main(void)
{
printf("== Start program ===\n");
log_msg(stderr, "[ %s ] : [ %s ] : [ %d ]\n", __FILE__, __func__, __LINE__);
return 0;
}
void log_msg(FILE *out, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vfprintf(out, fmt, ap); /* run-time error here */
va_end(ap);
}
你如何运行时错误,如果你有一个编译时错误?你为了让它编译而改变了什么? – 2009-11-10 02:48:12
我想知道和罗布沃克一样的东西。另外,写入的log_msg()等价于fprintf()。 fprintf()工作正常吗?假设它的确如此,您可以通过汇编级别的调试来了解其差异。 – 2009-11-10 03:06:36
我对__func__有一个编译错误,所以我评论了它,然后运行没有%s和__func__的代码。然后我得到了vfprintf的错误。 – ant2009 2009-11-10 03:13:12