致力于将C项目转换为c ++,此代码适用于普通的C ++项目,但是当我开始远程调试以加速测试时,我不再能够使用va_start宏
#include "Utilities.h"
#include <cstdarg>
#include <stdarg.h>
void Utilities::PrintLine(const char* text, ...)
{
char buffer[100];
va_list args; // resolved just fine
va_start(text, args); // cannot resolve
vsprintf(buffer, text, args);
va_end(args); // cannot resolve
std::cout << buffer << "\n";
}
答案 0 :(得分:1)
我不承认您使用va_start。以下内容适用:
#include <iostream>
#include <cstdarg>
void PrintLine(const char* fmt, ...)
{
char buffer[100];
va_list args;
va_start(args, fmt);
vsprintf(buffer, fmt, args);
va_end(args);
std::cout << buffer << std::endl;
}
PrintLine ("var arg %d %d %d %d", 1, 2, 3, 4);