c++ - 使按位函数适用于任何类型的整数输入 C++ 的最佳方法是什么?

标签 c++ performance void-pointers

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

我想要一个函数来做这样的事情:

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

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

我想过为数据使用一个空指针,这样所有的东西都可以通过一个函数运行。这是一个糟糕的设计吗?就效率而言呢?由于我缺乏经验,我对设计的好坏没有概念。

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

这些标志必须经常查看,因为这是用于数据采集系统的。空指针实现是否合理有效?

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

提前感谢您送我去学校。

最佳答案

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

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

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

关于c++ - 使按位函数适用于任何类型的整数输入 C++ 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224467/

相关文章:

c++ - 有没有办法丢弃空捕获?

c++ - 深层嵌套循环的缓存中毒问题

python - 如何将这段代码从 python 循环重写为 numpy 向量(为了性能)?

javascript - JavaScript 中 PubSub/过多事件和事件处理程序的性能成本?

c - 如何在 C 中处理未知类型的数字?

c++ - 函数参数中的空指针和强制转换

c - int 指针转换为 void 指针,然后转换为 double 指针

c++ - 关于指针的说明

c++ - 如何在类构造函数和重载运算符中创建不同的类对象(C++)

c++ - 函数指针中的参数列表