This documentation給出瞭如何編寫可變參數函數printf()
的示例。printf()如何真正執行?
作爲文檔,printf()
將在字符串中找到第一個%
,並使用va_arg(argp, int)
獲取第一個參數指針;找到字符串中的第二%
和再次使用va_arg(argp, int)
獲得第二個參數指針......
所以,我寫的代碼片段:
int Var = 0;
int Func (int X)
{
Var = Var + X;
return Var;
}
int main (void)
{
printf ("%d\n%d", Func (3), Func (5));
}
它會打印:
8 <-- 5+3
5 <-- 5
我知道調用多種功能於printf()
是不確定的行爲,但爲什麼不打印:
3 <-- 3
8 <-- 3+5
就像樣本代碼那documentation?
ps:如果我的問題不清楚,請幫我編輯它。謝謝