面板類型 va_list定義的是什么類型?
va_list定義的是什么類型?C語言參數從右到左進入堆棧。堆棧從高地址增長到低地址。因此,在堆棧空間中,參數的排列非常有序和規則。從第一個參數開始,它們根據參數的大小緊密排列。在讀取可變參數時,一般
va_list定義的是什么類型?
C語言參數從右到左進入堆棧。堆棧從高地址增長到低地址。因此,在堆棧空間中,參數的排列非常有序和規則。從第一個參數開始,它們根據參數的大小緊密排列。在讀取可變參數時,一般來說,必須至少有一個不可變參數。取最后一個不可變參數的地址,并將其相加。參數的大小是下一個變量參數的起始地址。然后根據參數的類型添加相應的位移,依次取出這些參數。這就是變參數原理。類似list的va_uu宏實際上也做同樣的事情。因此,如果您想用自定義變量參數調用vprintf,您可以自己分配一個空間,然后用要傳入的變量參數填充該空間,最后將該空間的地址轉換為VA,然后將列表傳遞給vprintf。在大多數架構中,VA_uList是一種簡單的指針類型。
使用VA_u2; XXX的宏也應該正常。雖然不能保證它可以用在其他奇怪的體系結構中,但這仍然是一句話。為什么不?在正常情況下,最好為每個參數調用printf一次