⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rprintf.c

📁 一个C源代码分析器
💻 C
字号:
#include <stdio.h>#include <printf.h>#include <stdarg.h>/*@group*/typedef struct  {    char *name;  } Widget;/*@end group*/int print_widget (FILE *stream, const struct printf_info *info, va_list *app){  Widget *w;  char *buffer;  int len;  /* Format the output into a string. */  w = va_arg (*app, Widget *);  len = asprintf (&buffer, "<Widget %p: %s>", w, w->name);  if (len == -1)    return -1;  /* Pad to the minimum field width and print to the stream. */  len = fprintf (stream, "%*s",		 (info->left ? - info->width : info->width),		 buffer);  /* Clean up and return. */  free (buffer);  return len;}intmain (void){  /* Make a widget to print. */  Widget mywidget;  mywidget.name = "mywidget";  /* Register the print function for widgets. */  register_printf_function ('W', print_widget, NULL); /* No arginfo.  */  /* Now print the widget. */  printf ("|%W|\n", &mywidget);  printf ("|%35W|\n", &mywidget);  printf ("|%-35W|\n", &mywidget);  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -