Dalam C dan C , fungsi printf dan sprintf digunakan untuk pencetakan dan penulisan berformat. Fungsi ini membenarkan spesifikasi rentetan format yang mengawal cara argumen seterusnya dicetak. Walau bagaimanapun, mungkin terdapat keadaan di mana bilangan hujah yang akan dicetak tidak diketahui terlebih dahulu. Ini menimbulkan persoalan tentang cara menghantar nombor pemboleh ubah argumen kepada fungsi ini.
Pustaka C standard menyediakan fungsi vfprintf, yang boleh mengendalikan bilangan argumen yang berubah-ubah. Ia memerlukan dua hujah mandatori:
Coretan kod berikut menunjukkan cara menggunakan vfprintf:
void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); }
Dalam contoh ini, fungsi Ralat mengambil rentetan format sebagai argumen pertama dan nombor arbitrari argumen tambahan. Argumen ini diakses melalui va_list, yang dimulakan menggunakan va_start. Fungsi vfprintf kemudian dipanggil dengan rentetan format dan va_list. Akhir sekali, va_end digunakan untuk membersihkan senarai_va.
Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Bilangan Pembolehubah Argumen ke printf/sprintf dalam C dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!