C 中,省略號引數裡能塞所有能傳值的型別。有一些型別會在傳遞時提升。
但就實現而言,把引數傳給省略號時,不會自動保持表示引數原本型別的資訊。省略號引數更近似於無型別。實現這些函式時,若要取出原本傳遞的引數,則要依靠 <stdarg.h> 中的宏,以及在別處提供或約定好的型別資訊。
printf/scanf 系列的函式只能接受一定型別的引數,見:
scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s
printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s
傳其他型別引數是未定義行為,編譯器可能不診斷。有條件的話把警告開足,如
-Wall -Wextra -pedantic-errors
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
C 中,省略號引數裡能塞所有能傳值的型別。有一些型別會在傳遞時提升。
Variadic arguments但就實現而言,把引數傳給省略號時,不會自動保持表示引數原本型別的資訊。省略號引數更近似於無型別。實現這些函式時,若要取出原本傳遞的引數,則要依靠 <stdarg.h> 中的宏,以及在別處提供或約定好的型別資訊。
printf/scanf 系列的函式只能接受一定型別的引數,見:
scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s
printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s
傳其他型別引數是未定義行為,編譯器可能不診斷。有條件的話把警告開足,如
-Wall -Wextra -pedantic-errors
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ