gpt4 book ai didi

c - 128 位结构或 2 个 64 位记录以提高性能和可读性

转载 作者:太空狗 更新时间:2023-10-29 17:11:54 25 4
gpt4 key购买 nike

我正在对一个大文件(10 GB)中的 128 位记录进行排序。算法运行良好,目前使用 uint64_t 其中两个等于一个记录。这是在现代 64 位系统上。

为了代码的可读性,我想知道是否可以创建一个像 typedef struct u128t {uint64_t hi, uint64_t} u128t 这样的结构来代替两个 64 位记录。这将使数组索引和赋值更清晰,但我必须实现一个比较器函数。

这是一个可移植的解决方案吗?我是否应该期望它以与原始实现相同的速度运行?

进一步阅读:

最佳答案

使用 struct 没问题。

我会做这样的事情:

#if COMPILER_WHICH_SUPPORTS_128_BIT_TYPE
typedef __uint128 u128t;
#define COMPARE(a, b) ((a) == (b))
#else
typedef struct {
uint64_t hi;
uint64_t lo;
} u128t;
#define COMPARE(a, b) MyCompareFunction((a), (b))
#endif

关于c - 128 位结构或 2 个 64 位记录以提高性能和可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18896152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com