想象一下自定义任意精度整数类型的假设情况,它必须尽可能快地运行,同时完全可移植。为了实现这一目标,我们需要使用可用于给定平台的更大和更快(无符号)整数类型。
它必须更大,因为这样我们将处理每个周期的最大位数。
它必须更快,因为在某些平台上有可用的更大的整数类型但只有整数运算的子集(例如,在x86中,128位整数不允许执行单指令添加 - 携带操作)。
在具有C99标准编译器的每个平台上获得更大更快的整数类型的最佳和最便携的方法是什么(如果可能的话)?
答案 0 :(得分:2)
在具有C99标准编译器的每个平台上获得更大更快的整数类型的最佳和最便携的方法是什么?
使用所有候选类型编译测试程序,运行它,计时,选择最快,然后编译您的应用程序。
换句话说,找到最快的类型是在 configure-time 完成的,而不是在编译时完成的。这具有使用最快类型的额外好处,即使在stdint.h
中实现它也是如此。