Saya ingin mencetak variabel bertipe size_t
C tetapi tampaknya size_t
variabel tersebut memiliki alias berbeda pada arsitektur yang berbeda. Misalnya, pada satu mesin (64-bit), kode berikut tidak menampilkan peringatan apa pun:
size_t size = 1;
printf("the size is %ld", size);
tetapi di komputer saya yang lain (32-bit), kode di atas menghasilkan pesan peringatan berikut:
peringatan: format '% ld' mengharapkan tipe 'long int *', tetapi argumen 3 memiliki tipe 'size_t *'
Saya menduga hal ini disebabkan oleh perbedaan ukuran penunjuk, sehingga pada mesin 64-bit saya di- size_t
alias dengan a long int
( "%ld"
), sedangkan pada mesin 32-bit saya di- size_t
alias ke tipe lain.
Apakah ada penentu format khusus untuk size_t
?
&
suatu tempat?