我想知道在哪裏可以找到則使用的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. 執行printf()函數
- 3. 瞭解printf函數
- 4. micrium的printf函數
- 5. 本地JavaScript類printf函數
- 6. 幫助我的printf函數
- 7. CUDA中的printf __global__函數
- 8. 幫助C printf函數
- 9. 無法正確對齊printf代碼
- 10. 的「printf」亂碼
- 11. strncasecmp()函數的源代碼
- 12. Python函數代碼錯誤
- 13. 函數調用代碼VBA
- 14. 的使用(函數(){//代碼})()
- 15. C++析構函數代碼
- 16. 函數追蹤代碼
- 17. py.image.save_as()函數粉碎代碼
- 18. 迭代printf列表
- 19. Array.push的替代代碼()函數
- 20. jQuery函數取代臃腫的代碼
- 21. printf函數將變量傳遞給javascript
- 22. 如何使用Ruby printf()函數
- 23. printf支持函數重載在C中?
- 24. printf中應用一個函數上階
- 25. 生成字符串作爲printf函數
- 26. 無盡的函數在printf上崩潰
- 27. 自己的printf函數不起作用
- 28. Oracle WebForms中是否有printf函數?
- 29. 從數學函數的C++代碼
- 30. 帶有FLEX代碼的函數參數
從哪個實現?每個平臺都有自己的... – 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