Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как работает memcpy? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив записей http://www.cyberforum.ru/cpp-beginners/thread86853.html
Организовать массив записей, содержащий информацию о результатах сдачи последней сессии вашими товарищами. Определить и дополнить данные средним баллом. Совсем запуталась с этой задачей( Помогите,...
C++ структура STUDENT 1. Описать структуру с именем STUDENT, содержащую следующие поля: ■ фамилия и инициалы; ■ номер группы; ■ успеваемость (массив из пяти элементов). 2. Написать программу, выполняющую следующие... http://www.cyberforum.ru/cpp-beginners/thread86852.html
буфер (вывод содержимого на экран) C++
нужно вывести содержимое буфера на экран (для проверки). в сети нашла только пример записи в буфер. подскажите пожалуйста,как написать вывод? консольное приложение в vs (версии 2005) #include...
Перевыделение массива C++
Нужно написать функцию, которая в массиве целых чисел перед каждым четным элементом добавляет 0. Т.е. если был массив 1 6 3 7 8 15 то должен получится в итоге 1 0 6 3 7 0 8 15. К сожалению код...
C++ Формат даты число/месяц. http://www.cyberforum.ru/cpp-beginners/thread86823.html
Привет, помогите пожалуйста решить задачку на с++ (6.0) "Дата задается в формате число/месяц. С учетом высококосных годов реализовать вычитание определенного пользователем количества дней,...
C++ как заполнить массив как заполнить массив состоящий из определенного числа элементов подробнее

Показать сообщение отдельно
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1

Как работает memcpy? - C++

17.01.2010, 20:06. Просмотров 2996. Ответов 7
Метки (Все метки)

Небольшой вопрос по поводу memcpy.
Какая из функций будет работать быстрее?

C++
1
typedef unsigned int WORD32;
1 вариант
C++
1
2
3
4
5
6
7
void wcpy(WORD32 * D, WORD32 * S, int size)
{
    while(size--)
    {
        *D++ = *S++;
    }
}


2 вариант
C++
1
2
3
4
5
6
7
void _wcpy(WORD32 * D, WORD32 * S, int size)
{
    if(D != S)
    {
        memcpy(D, S, size*sizeof(WORD32));
    }
}


Я сам конечно понимаю, что скорее всего второй вариант адекватнее, но хотелось бы узнать подробности

И второй вопрос, как сделать реверс числа, тобишь из числа типа 0xABCD надо получить 0xDCBA...
Я тут набросал небольшой кусок, но он совсем отвратный..))) Хочется более красивое решение ))..

реверс
C++
1
2
3
4
5
6
7
8
9
10
WORD32 wrev(WORD32 X)
{
    return ( (X<<28) | (((X >>  4) << 28) >>  4)  | \
               (((X >>  8) << 28) >>  8)  | \
               (((X >> 12) << 28) >> 12) | \
               (((X >> 16) << 28) >> 16) | \
               (((X >> 20) << 28) >> 20) | \
               (((X >> 24) << 28) >> 24) | \
                     ((X) >> 28) ) ;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru