[英]Why should do the loop with an increasing number smaller than the first parameter in va_arg?
這個功能我差不多看懂了,但是看例子的時候就疑惑了。 為什么 For 語句會循環直到 i 小於 count?
int
add_em_up (int count,...)
{
va_list ap;
int i, sum;
va_start (ap, count); /* Initialize the argument list. */
sum = 0;
for (i = 0; i < count; i++)
sum += va_arg (ap, int); /* Get the next argument value. */
va_end (ap); /* Clean up. */
return sum;
}
int
main (void)
{
/* This call prints 16. */
printf ("%d\n", add_em_up (3, 5, 5, 6));
/* This call prints 55. */
printf ("%d\n", add_em_up (10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
return 0;
}
我試圖通過查看各種解釋來理解這個概念,但這並不容易。 我知道第一個參數是列表的第一個參數。 這是第一個參數,為什么我們要在這里循環呢? 但為什么? 我想知道為什么! 請幫助我!
為什么 For 語句會循環直到i 小於 count?
它不會 - 它在i 小於計數時循環。
好的,這是一個如此簡單的問題,像您這樣的專家一定感到困惑。 我正在實施 printf。 例如,實現了以下功能:
int printf(const char *str, ...) //funtion
printf("my name : %s \n my age : %d \n", "baby coder", 1);
const char: "我的名字:%s\n 我的年齡:%d\n" 參數:baby coder, 1
這就是為什么旋轉循環直到 'i' 小於 str 的數量......!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.