Sử dụng phổ biến typedefs là cho phép 'loại' của một biến để truyền đạt ý tưởng tốt hơn về mục đích của biến mà không cần định nghĩa lại cấu trúc lưu trữ đằng sau nó.Typedefs và specifier định dạng printf
Tuy nhiên, tôi cũng thấy typedef là cách thay đổi cấu trúc lưu trữ cho một lớp biến trong một lần.
Ví dụ, nếu tôi xác định
typedef uint32_t my_offset_t
và có các biến của các loại my_offset_t
, chuyển đổi mã-base từ uint32_t
để char
hoặc uint64_t
cũng đơn giản như thay đổi một dòng và biên dịch lại (giả sử tôi đã đã sử dụng sizeof
thay vì kích thước được mã hóa cứng), ngoại trừ trường hợp printf/scanf.
Có cách nào để trao đổi định dạng-specifiers theo loại một cách dễ dàng, mà không có chức năng wrapper xung quanh printf
/scanf
, if-elses, hoặc ifdefs?
Cảm ơn!
Đối với bất kỳ ai quan tâm, tôi đang sửa đổi LKM đã sử dụng bù lệch 16 bit để làm việc với bù bit 32 bit, nhưng muốn nó có thể chuyển sang bù đắp 64 bit (hoặc thứ khác) nếu cần với những thay đổi tối thiểu.
Cảm ơn cho câu trả lời :) Tôi chấp nhận người kia mặc dù bởi vì nó là một phản ứng hoàn thiện hơn, trong trường hợp bất cứ ai khác quan tâm đến câu hỏi này. – Vanwaril