gpt4 book ai didi

c - 确定参数列表中参数类型的简单方法

转载 作者:行者123 更新时间:2023-11-30 17:56:21 25 4
gpt4 key购买 nike

我想要一个函数debug_print(fmt, args),它接受格式字符串、参数并构建一个字符缓冲区,然后我可以将其发送到UART。基本上我可以将所有这些传递给 scanf,但问题是格式化 float 需要特别小心。

dtostrf( float_num, 3, 4, temp_buf );

所以我需要将格式字符串中的 %f 替换为 %s 并将 float arg 更改为 temp_buf。由于嵌入式环境功能有限,所有这些都必须以最少的步骤完成。

如果有人可以帮助构建这样的功能,我将不胜感激。

类似这样的事情:

void debug_print(char *fmt, ... )
{
va_list args;
va_start(args,fmt);
// use uart function for output
va_end(args);
}

但是如何有效地迭代占位符以及如何将 float arg 替换为 char*

最佳答案

当您找到 "%f" 时,不要更改格式字符串(如果传递的字符串实际上是文字字符串,则这是不可能的) format-code 您使用 dtostrf 转换下一个参数函数,将值存储在临时小字符串中,然后将其连接到输出字符串(即 strcat )。

关于c - 确定参数列表中参数类型的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13624906/

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