int printf (const char *__format, ...)
{
register int __retval;
__builtin_va_list __local_argv; __builtin_va_start(__local_argv, __format);
__retval = __mingw_vprintf(__format, __local_argv);
__builtin_va_end(__local_argv);
return __retval;
}
上面的行是stdio
庫的一部分,對應於printf
函數。當調用printf
時,這些被執行。這些線是什麼意思?當執行上述每一行時會發生什麼?Printf不是c語言的一部分。當從stdio.h執行PRINTF的代碼時實際發生了什麼?
其中大部分可以通過閱讀可變參數函數來回答。 – chris 2013-04-07 06:15:44
如果您有興趣瞭解如何實現'printf()',我最近編寫的實現可以在以下網址查看:https://github.com/duskwuff/lm-project0/blob/master/stdio.c – duskwuff 2013-04-07 06:33:33
歡迎來到SO。你錯了,'printf' *是* C語言的一部分。它在標準文件中被指定爲C的組成部分。平臺如何實現語言的庫部分完全取決於他們。通常這些實現是棘手的,不容易閱讀。如果你是C語言的初學者,你可能應該用更簡單的代碼開始閱讀和編寫C程序。 – 2013-04-07 07:39:25