致力于将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";
}
我不认识您对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);