Trong khi nghiên cứu cách thực hiện các chuỗi định dạng chéo printf()
trong C (nghĩa là, có tính đến số lượng bit mà tôi mong đợi mỗi đối số nguyên cho printf()
nên) Tôi chạy qua this section of the Wikipedia article on printf()
. Bài viết bàn về tùy chọn phi tiêu chuẩn có thể được truyền cho printf()
chuỗi định dạng, chẳng hạn như (những gì có vẻ là một phần mở rộng của Microsoft cụ thể):Tại sao các chuỗi tùy chọn mới (chiều rộng bit cụ thể) printf() định dạng được chấp nhận như là một phần của C99?
printf("%I32d\n", my32bitInt);
Nó tiếp tục nói rằng:
ISO C99 bao gồm tiêu đề inttypes.h tệp bao gồm một số macro để sử dụng trong mã hóa độc lập nền tảng .
... và sau đó liệt kê một tập hợp các macro có thể tìm thấy trong tiêu đề đã nói. Nhìn vào tập tin tiêu đề, để sử dụng chúng tôi sẽ phải viết:
printf("%"PRId32"\n", my32bitInt);
Câu hỏi của tôi là: Tôi đang thiếu cái gì? Đây có phải là cách C99 tiêu chuẩn để làm điều đó không? Nếu vậy, tại sao? (Mặc dù tôi không ngạc nhiên khi tôi chưa bao giờ thấy mã sử dụng các chuỗi định dạng theo cách này, vì nó có vẻ quá cồng kềnh ...)
Một nhược điểm: gọi C từ hội đồng. –