可變參數清單中的預設型別提升
在C 和C 中,當將參數傳遞給具有可變數量參數的函數時(即,一個可變參數函數),會發生某些預設類型提升。
整數提升
C 和 C 標準保證任何等級小於 int 的整數型別都會被提升為 int 或 unsigned int。這意味著,如果將 8 位元整數(例如 uint8_t)傳遞給需要 int(通常大小為 16 位元或更大)的函數,則 8 位元整數將自動提升為 16 位元或更大。 🎜>
例如,在提供的程式碼片段中:uint8_t a = 5; printf("%d", a);
浮點提升
同樣,浮點值預設提升為雙精確度。這意味著,如果您將浮點型傳遞給需要雙精度型的函數,則該浮點型將自動轉換為雙精度型。範例
總而言之,預設值可變參數清單中的類型提升為:以上是以下是一些標題選項,重點關注您所要求的問題: 直接、清晰: * C/C 可變參數函數中會發生什麼類型的提升? * 如何在 Variadic Func 中提升參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!