重写 printf 添加输出
时间: 2023-10-24 13:08:42 浏览: 98
如果要在 printf 函数中添加输出,可以使用可变参数的方式来实现。具体方法如下:
1. 定义一个新的函数,例如 my_printf,它与 printf 函数的参数列表相同,即第一个参数是格式化字符串,后面可以有任意多个参数。
2. 在 my_printf 函数内部,使用 va_start、va_arg 和 va_end 等宏来遍历参数列表,将格式化字符串和参数列表的内容一起输出。
下面是一个简单的示例代码:
```
#include <stdio.h>
#include <stdarg.h>
void my_printf(const char* format, ...) {
va_list args;
va_start(args, format);
vprintf(format, args);
printf("Hello, world!\n");
va_end(args);
}
int main() {
int a = 123;
my_printf("a = %d\n", a);
return 0;
}
```
在上面的示例中,我们定义了一个名为 my_printf 的函数,它的参数列表与 printf 相同。在函数内部,我们使用 va_list、va_start、va_arg 和 va_end 等宏来遍历参数列表,将格式化字符串和参数列表的内容一起输出。同时,我们还在输出后添加了一句 "Hello, world!",以演示如何在 printf 函数中添加输出。
在 main 函数中,我们调用了 my_printf 函数,并传入了一个整数参数。输出结果如下:
```
a = 123
Hello, world!
```
可以看到,my_printf 函数成功输出了格式化字符串和参数列表的内容,并在最后添加了一句 "Hello, world!"。
阅读全文