我想知道在哪里可以找到使用的C代码,以便在编写printf(“ Hello World!”); 在我的C程序中知道它必须将该字符串打印到STDOUT。我查看了<stdio.h>,但是在那里我只能找到它的原型int printf(const char * format,...),但是找不到它的内部外观。
1 回答
达令说
TA贡献1821条经验 获得超6个赞
这是...的GNU版本,printf您可以看到它传递stdout给vfprintf:
__printf (const char *format, ...)
{
va_list arg;
int done;
va_start (arg, format);
done = vfprintf (stdout, format, arg);
va_end (arg);
return done;
}
看这里。
这里有一个链接到vfprintf...所有格式“神奇”发生在这里。
这些函数唯一真正“不同”的地方是它们使用varargs获取可变长度参数列表中的参数。除此之外,它们只是传统的C语言。(这与Pascal的printf等效语言形成了鲜明对比,后者在编译器中提供了特定的支持,至少在今天已经实现了。)
- 1 回答
- 0 关注
- 677 浏览
添加回答
举报
0/150
提交
取消