Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách đúng để dùng printf in size_t trong C/C++

Để in biến kiểu size_t, nên sử dụng định dạng %zu. Việc dùng %d cũng không báo lỗi nhưng không chuẩn xác vì size_t là kiểu không dấu (unsigned).

Trong %zu, z là modifier độ dài (length modifier), u đại diện cho kiểu unsigned.

Ví dụ

#include <stdio.h>

int main() {
    size_t a = 20;
    printf("Gia tri cua a: %zu", a);
    return 0;
}

Kết quả

Gia tri cua a: 20

Giải thích: Biến a kiểu size_t được khởi tạo giá trị 20. Lệnh printf("%zu", a) in ra đúng giá trị.

Lưu ý: Trên một số trình biên dịch cũ (C89/C90), %zu có thể không hỗ trợ. Trong trường hợp đó, có thể ép kiểu: printf("%lu", (unsigned long)a) hoặc dùng PRIuPTR từ <inttypes.h>.