我想知道在哪裏可以找到則使用的C代碼,這樣,當我寫的printf(「世界,你好! 「);在我的C程序中知道它必須將該字符串打印到STDOUT。我查看了<stdio.h>,但在那裏我只能找到它的原型int printf(const char * format,...),但沒有看到它在內部看起來如何。
41
A
回答
0
取決於您的平臺和實施;一個很好的實現是GNU C,你可以從here
57
下載這裏是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;
}
這裏的a link到vfprintf
...所有的格式「魔術」都發生在這裏。
關於這些函數的唯一真正'不同'是他們使用可變參數來獲取可變長度參數列表中的參數。除此之外,它們只是傳統的C.(這與Pascal的printf
相當,它在編譯器中實現了特定的支持......至少它在當天回來了。)
相關問題
- 1. printf函數
- 2. Preproccessed printf函數
- 3. 執行printf()函數
- 4. micrium的printf函數
- 5. 瞭解printf函數
- 6. 使用printf函數
- 7. PHP,Printf,Sprintf函數
- 8. printf scanf函數和fflush()
- 9. CUDA中的printf __global__函數
- 10. 幫助C printf函數
- 11. 本地JavaScript類printf函數
- 12. awk print和printf函數
- 13. Ç - 警告:函數「printf的」
- 14. 裝入C,printf函數
- 15. 幫助我的printf函數
- 16. 使用函數指針數組編碼printf
- 17. 代碼崩潰在printf語句
- 18. printf和沒有得到彙編代碼
- 19. glibc中printf()的跟蹤代碼
- 20. 如何在C++代碼中攔截printf()?
- 21. 無法正確對齊printf代碼
- 22. 的「printf」亂碼
- 23. Excel VLOOKUP函數源代碼
- 24. sumifs函數的VBA代碼
- 25. 函數追蹤代碼
- 26. C++析構函數代碼
- 27. jQuery函數的源代碼
- 28. PHP函數代碼錯誤
- 29. strncasecmp()函數的源代碼
- 30. 返回函數的代碼
從哪個實現?每個平臺都有自己的... – thkala 2011-02-01 19:48:58
我不認爲有可用的來源。無論如何,我總是想知道這一點。 – BlackBear 2011-02-01 19:49:22
最終,printf必須進行OS調用,所以確切的實現是平臺特定的。從printf到實際的OS調用之後,可能會非常混亂。 C運行時庫(CRT)的源代碼通常可以在編譯器中使用(GCC和MSVC爲true)。 – Tergiver 2011-02-01 20:11:08