Tôi muốn in ra một biến kiểu size_t
trong C nhưng có vẻ như nó size_t
được đặt biệt danh cho các kiểu biến khác nhau trên các kiến trúc khác nhau. Ví dụ: trên một máy (64-bit), mã sau không đưa ra bất kỳ cảnh báo nào:
size_t size = 1;
printf("the size is %ld", size);
nhưng trên máy khác của tôi (32-bit), mã trên tạo ra thông báo cảnh báo sau:
cảnh báo: định dạng '% ld' mong đợi loại 'long int *', nhưng đối số 3 có loại 'size_t *'
Tôi nghi ngờ điều này là do sự khác biệt về kích thước con trỏ, vì vậy trên máy 64-bit của tôi size_t
được đặt bí danh là long int
( "%ld"
), trong khi trên máy 32-bit của tôi size_t
được đặt bí danh là một kiểu khác.
Có công cụ định dạng dành riêng cho size_t
không?
&
ở đâu đó?