可能重复:
c/c ++函数的源代码
我想知道在哪里可以找到使用的C代码,这样当我写printf("Hello World!")时; 在我的C程序中知道它必须将该字符串打印到STDOUT.我查看了<stdio.h>,但在那里我只能找到它的原型int printf(const char*format,...),但不是内部的样子.
小智 76
下面是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;
}
Run Code Online (Sandbox Code Playgroud)
这里有一个链接到vfprintf...所有格式"神奇"发生在这里.
关于这些函数唯一真正"不同"的是它们使用varargs来获取可变长度参数列表中的参数.除此之外,它们只是传统的C.(这与Pascal的printf等价形成对比,后者在编译器中具有特定的支持实现......至少它是在当天回来的.)