typedef 的一个常见用途是使变量的 '类型' 能够更好地传达变量的目的,而不必重新定义其后面的存储结构。
然而,我也看到 typedef 作为一种在一次性更改类别的变量的存储结构的方法。
例如,如果我定义
typedef uint32_t my_offset_t
如果我的变量类型是my_offset_t
,那么将代码从uint32_t
更改为char
或uint64_t
只需要更改一行代码并重新编译(假设我使用了sizeof
而不是硬编码的大小),除了printf / scanf之外。
有没有一种简单的方法根据类型交换格式说明符,而无需在printf
/scanf
周围添加包装函数、if-elses或ifdefs?
谢谢!
对于任何感兴趣的人,我正在修改一个LKM,该LKM使用16位偏移量来适用于32位偏移量,但希望它能够在最小更改的情况下适用于64位(或其他)偏移量。