c - 将 C 中的变量参数传递给 printf / vsprintf
问题描述
我正在尝试将我得到的变量参数传递给我调用的另一个函数。我写了一个示例代码来测试它。为什么 my_printf 工作但 my2_printf 在下面的代码中?
#include <stdio.h>
#include <stdarg.h>
my2_printf(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
printf(fmt, ap);
va_end(ap);
}
my_printf(const char *fmt, ...)
{
va_list ab;
va_start(ab, fmt);
vfprintf(stdout, fmt, ab);
va_end(ab);
}
main()
{
int i = 5;
my_printf("This is a test %d => %s\n", i, "done");
my2_printf("This is a test %d => %s\n", i, "done");
}
我得到的输出如下:
This is a test 5 => done
This is a test -171084944 =>
解决方案
推荐阅读
- sql - 在 XML XPATH POSTGRES 中获取带有子节点的订单节点
- amazon-web-services - presto - 获取最近一个星期六的日期
- python - 在python中拆分多词标签的有效方法
- php - 使用 C 调用未定义函数 collect() 时出错
- javascript - 在没有内置函数的情况下更改字符串中字母的大小写
- javascript - 从地图循环中的父组件中删除子组件
- database - 使用 hasura 使用现有数据库进行 Flyway 迁移 - PostgresSQL 备份
- android - Android Jetpack Compose 从 Composable 内部的 Fragment 获取 Activity View Model
- c# - 如何使用 .Net 连接到 WinDSX 服务器以便查询数据库?
- opengl - 当变量未声明为统一时,编译错误显示“赋值给只读变量”