printf函数:

 #include <stdio.h>
#include <stdarg.h> int myself_printf(char *format, ...)
{
va_list ap;
int n; va_start(ap, format); n = vprintf(format, ap); va_end(ap); return n;
} int main(void)
{
myself_printf("test_num : %d\n", );
}

运行结果:test_num : 123

error函数:

 #include <stdio.h>
#include <stdarg.h> int myself_error(char *format, ...)
{
va_list ap;
char *str;
int n; va_start(ap, format); fprintf(stderr, "Error: ");
vfprintf(stderr, format, ap); va_end(ap); return n;
} int main(void)
{
myself_error("%s\n", "main failure");
}

运行结果:Error: main failure

函数:

 #include <stdio.h>
#include <stdarg.h> void foo(char *format, ...)
{
va_list ap;
char c, *s;
int d; va_start(ap, format); while (*format) {
switch (*format++) {
case 's': /* string */
s = va_arg(ap, char *);
printf("string :%s\n", s);
break;
case 'd':
d = va_arg(ap, int);
printf("int :%d\n", d);
break;
case 'c':
c = (char) va_arg(ap, int);
printf("char :%c\n", c);
break;
}
va_end(ap);
}
} int main(void)
{
char c = 'b';
foo("dc", "a", , c);
}

运行结果:

string :a
int :1
char :b

函数:

 #include <stdio.h>
#include <stdarg.h> void foo(int n, ...)
{
va_list ap;
int tmp, i; va_start(ap, n); for (i = ; i < n; i++) {
tmp = va_arg(ap, int);
printf("tmp : %d\n", tmp);
} va_end(ap); } int main(void)
{
foo(, "", , , );
}

运行结果:

tmp : 1
tmp : 2
tmp : 3
tmp : 4

和上边的函数进行对比:

 #include <stdio.h>

 void foo(int n, ...)
{
int *temp = &n;
int i = ; temp++;
for (i = ; i < n; i++) {
printf("temp : %d\n", *temp);
temp++;
}
} int main(void)
{
foo(, , , , );
}

运行结果:

temp : 1
temp : 2
temp : 3
temp : 4

函数:

 #include <stdio.h>
#include <stdarg.h> void foo(char *format, ...)
{
va_list ap;
char *res; va_start(ap, format); res = va_arg(ap, char *);
printf("va_arg result : %s\n", res);
printf("%s%s\n", format, res); va_end(ap);
} int main(void)
{
foo("test : ", "foo");
}

运行结果:

va_arg result : foo
test : foo

函数:

 #include <stdio.h>
#include <stdarg.h> void testFun(char *a, int b, char *c, ...)
{
va_list ap; va_start(ap, c); vsnprintf(a, b, c, ap);
printf("a : %s\n", a); va_end(ap);
} int main(void)
{
char buf[];
testFun(buf, , "def");
}

运行结果:a : def

最新文章

  1. HDU - 1232 畅通工程
  2. 【T_SQL】 基础 续+++
  3. PHP 一个表单多个提交按钮,处理不同的业务逻辑
  4. Json与类对象转换
  5. 【POJ 1035】Spell checker
  6. AutoMapper使用笔记
  7. 三级联动(ajax)
  8. eclipse项目出现红色叉叉解决方案
  9. 转:SVN Eclipse插件Subclipse安装和配置
  10. 想成为Java高级工程师的看过来
  11. 【webpack系列】从零搭建 webpack4+react 脚手架(五)
  12. numpy中的norm用法
  13. Laravel 出现 No application encryption key has been specified.
  14. cocos2dx2.x&amp;3.x部分函数对照表
  15. visual studio 2013的使用和单元测试
  16. springmvc实现json交互 -requestBody和responseBody
  17. oracle 数据库相关名词--图解
  18. Ubantu下安装jdk 教程
  19. linux 源码编译php的参数
  20. JMeter调试工具--Debug Sampler(转载)

热门文章

  1. vue样式的动态绑定
  2. java链接redis服务器
  3. MDK中在stm32下载出现error:flash download failed “cortex-m3”的问题
  4. 01 语言基础+高级:1-6 集合_day03【List、Set、Collections工具类】
  5. AtCoder - 4371 Align(分类讨论)
  6. LGOJ4172 WC2006水管局长
  7. 项目开发git-短信验证-redis数据库
  8. ifconfig筛选出IP
  9. 懒人JS
  10. Java任务调度框架之分布式调度框架XXL-Job介绍