我想知道在哪里可以找到使用的C代碼,以便在編寫(xiě)printf(“ Hello World!”); 在我的C程序中知道它必須將該字符串打印到STDOUT。我查看了<stdio.h>,但是在那里我只能找到它的原型int printf(const char * format,...),但是找不到它的內(nèi)部外觀。
1 回答

達(dá)令說(shuō)
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
這是...的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;
}
看這里。
這里有一個(gè)鏈接到vfprintf...所有格式“神奇”發(fā)生在這里。
這些函數(shù)唯一真正“不同”的地方是它們使用varargs獲取可變長(zhǎng)度參數(shù)列表中的參數(shù)。除此之外,它們只是傳統(tǒng)的C語(yǔ)言。(這與Pascal的printf等效語(yǔ)言形成了鮮明對(duì)比,后者在編譯器中提供了特定的支持,至少在今天已經(jīng)實(shí)現(xiàn)了。)
- 1 回答
- 0 關(guān)注
- 705 瀏覽
添加回答
舉報(bào)
0/150
提交
取消