Visual Studio 2008
Я использую следующий исходный код, который хорошо компилируется с использованием linux gcc 4.4.1.
Тем не менее, я пытаюсь скомпилировать на Windows XP SP3 с использованием компиляции VS 2008 как код c.
Я получаю ошибку во время выполнения при вызове 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);
}