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