0
Мне нужно реализовать небольшую функцию, которая заменяет байты для массива с заданной длиной.Использовать шаблон или void?
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. Замените MYTYPE на (void *) 2. Используйте шаблоны.
Какой вариант лучше или предпочтительнее? Есть ли лучший способ, чем эти два?
Является ли 'MYTYPE' всегда массивом' unsigned int'? – CinCout
Будьте осторожны, чтобы на какой-то машине 'htonl' ничего не менять! Это зависит от собственного байтового заказа вашего устройства ... –
Если бы я писал это, я * * потребовал бы, чтобы вызывающий выполнял приведение. Вы одновременно набираете четыре записи через arrayPointer и вызываете функцию смены 32-разрядного байта. – Boojum