C代码printf函数
可能重复:
c / c ++函数的源代码
我想知道在哪里可以find使用的C代码,所以当我写printf(“Hello World!”); 在我的C程序知道它必须打印该string到STDOUT。 我看了<stdio.h>,但在那里我只能find它的原型int printf(const char *格式,…),但不是它看起来像内部。
这里是printf
的GNU版本…你可以看到它通过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
…所有的格式“魔术”发生在这里。
关于这些函数唯一真正“不同”的是他们使用可变参数来获取可变长度参数列表中的参数。 除此之外,它们只是传统的C语言(这与Pascal的printf
等价物形成了鲜明的对比,这在编译器中得到了特定的支持,至less在当天才恢复)。
取决于你的平台和实施; 一个好的实现是GNU C,你可以从这里下载