gpt4 book ai didi

c++ - 传递可变参数时的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:37 26 4
gpt4 key购买 nike

我想,printf 也需要一个 va_list
但是当我这样做时,printf 没有执行我希望 printf 执行的操作:

void Log(int loglevel, char* string, ...)
{
va_list args;
va_start(args, string);

switch (type)
{
case LOGLEVEL_FATAL:
printf("FATAL: ");
break;

case LOGLEVEL_ERROR:
printf("ERROR: ");
break;

case LOGLEVEL_WARNING:
printf("WARNING: ");
break;

case LOGLEVEL_INFO:
printf("INFO: ");
break;
}

printf(string, args);
va_end(args);
}

当我现在打电话时:

Log(LOGLEVEL_INFO, "testvariable = %f", 16.0);

输出是:

INFO: testvariable = 0.000000

但为什么呢?
我的错误是什么?

最佳答案

最后的 printf() 调用应该是 vprintf() (“v”代表可变参数)。

关于c++ - 传递可变参数时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com