现在的位置: 首页 > 综合 > 正文

从printf谈可变参数函数的实现

2013年05月22日 ⁄ 综合 ⁄ 共 318字 ⁄ 字号 评论关闭

 1. 使用情形

双击代码全选
1
2
3
4
5
6
7
8
int

a =10;
double

b = 20.0;
char

*str =
"Hello
world"
;
printf("begin
print
");
printf("a=%d,
b=%.3f, str=%s
",
a, b, str);
...

  从printf的使用情况来看,我们不难发现一个规律,就是无论其可变的参数有多少个,printf的第一个参数总是一个字符串。而正是这第一个参数,使得它可以确认后面还有有多少个参数尾随。而尾随的每个参数占用的栈空间大小又是通过第一个格式字符串确定的。然而printf到底是怎样取第一个参数后面的参数值的呢,请看如下代码

  2. printf 函数的实现

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
【上篇】
【下篇】

抱歉!评论已关闭.