所以我需要以位为单位读取标志并以位为单位设置标志。这些位是各种大小的整数: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/