我正在对一个大文件(10 GB)中的 128 位记录进行排序。算法工作正常,目前使用uint64_t
其中两个等于一个记录。这是在现代 64 位系统上。
出于代码可读性的考虑,我想知道是否typedef struct u128t {uint64_t hi, uint64_t} u128t
可以使用 create 类似的结构来代替两个 64 位记录。这将使数组索引和分配更清晰,但我必须实现一个比较器函数。
这是一个可移植的解决方案吗?我是否应该期望它以与原始实现相同的速度运行?
进一步阅读:
- http://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html - 适用于 128 位系统
- http://en.wikipedia.org/wiki/C_data_types - c 类型
- 将结构复制到 C 中的结构- 复制结构