无法解析符号'__builtin_va_start' Visual Studio Linux 远程调试



致力于将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);

最新更新