Spurious Trailing '%' dalam Ralat Format Semasa Cuba Mencetak uint64_t
Dalam percubaan untuk mencetak pembolehubah uint64_t menggunakan printf, anda boleh menghadapi ralat seperti "%' jejak palsu dalam format." Mari kita mendalami isu ini dan teroka penyelesaian.
Coretan kod yang disediakan mempamerkan percubaan untuk mencetak pembolehubah uint64_t menggunakan pemegang tempat %" PRIu64 ":
#include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; }
Walau bagaimanapun, kompilasi gagal dengan mesej ralat yang dinyatakan sebelum ini. Untuk menyelesaikan isu ini, anda perlu memastikan bahawa makro yang diperlukan ditakrifkan. Piawaian ISO C99 menentukan bahawa makro PRIu64 hanya ditakrifkan jika diminta secara eksplisit.
Oleh itu, tambahkan baris berikut pada kod anda sebelum menyertakan
#define __STDC_FORMAT_MACROS
Dengan baris ini ditambah, makro PRIu64 akan ditakrifkan dengan betul dan ralat yang anda hadapi akan diselesaikan. Makro ini membolehkan penggunaan ruang letak PRIu64 dalam rentetan format printf, membolehkan anda berjaya mencetak pembolehubah uint64_t.
Atas ialah kandungan terperinci Mengapa Mencetak `uint64_t` Menghasilkan Ralat 'Spurious Trailing '%' dalam Format'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!