1

所以我需要以位读取标志并以位为单位设置标志。这些位具有各种大小的整数:int16、int32、int64 等。

我想要一个执行以下操作的函数:

static integertype function(integertype data, char startbit, char endbit);

我不想编写相同的代码,以便在单独但相同的函数中将不同大小的整数与位隔离开来(对于我想编写的大量位函数)。

我考虑过为数据使用 void 指针,这样一切都可以通过一个函数运行。这是一个糟糕的设计吗?至于效率如何?由于缺乏经验,我没有坏/好设计的概念。

static int function(void *data, char startbit, char endbit)

这些标志必须经常查看,因为这是针对数据采集系统的。空指针实现会相当有效吗?

我知道过早的优化是不好的,但我想知道哪些事情通常比其他事情效率低或效率高,这样我才能做出正确的决定。

提前谢谢你送我去学校。

4

2 回答 2

7

通常,如果您需要通用功能,您可以使用模板:

template <typename T>
T function(T data, char startbit, char endbit);

但请记住,我们有std::bitset.

于 2010-07-11T20:13:32.533 回答
5

为什么不让它成为一个模板函数呢?

template<typename T>
static T foobar(T data, char startbit, char endbit);
于 2010-07-11T20:13:26.217 回答