我需要实现一个小函数,它为给定长度的数组进行字节交换。
void myFunc (MYTYPE arrayPointer, const int& length)
{
unsigned int* tmp = (unsigned int*) arrayPointer;
for (int j=0; j < length; j = j + 4)
{
*tmp = htonl (*(tmp));
tmp++;
}
}
我不希望用户在使用该功能时进行类型转换。我想我还有两个选择: 1.用(void *)替换MYTYPE 2.使用模板。
哪个选项更好还是更好?有没有比这两个更好的方法?
答案 0 :(得分:3)
模板。您需要enable_if
上的sizeof(T)==4
。