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

Своя реализация memcpy - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка букв английского алфавита http://www.cyberforum.ru/cpp-beginners/thread338008.html
Здравствуйте, помогите решить проблему не пойму в чём дело необходимо отсортировать слова: void SetsManipulation::sortA() { int count=0; for(int k=0;setOne!='\0';k++) { count++; } ...
C++ В экспресс-выпуске Visual C++ SKU не поддерживается редактирование ресурсов У меня стоит Microsoft Visual Studio 2010. Файл example.rc редактироваться не хочет, пишет "В экспресс-выпуске Visual C++ SKU не поддерживается редактирование ресурсов". Я так понял нужна не... http://www.cyberforum.ru/cpp-beginners/thread337962.html
C++ c java на с++
аналог package и import java в c++
Список объектов класса C++
Всем добрый день. Допустим есть класс. class Test { public: void Add() { ... } } void main() {
C++ Ищу решебник! http://www.cyberforum.ru/cpp-beginners/thread337909.html
Срочно нужен решебник автор: Павловская Т.А, год издания 2008-2009 Объективно-ориентирование программирование. Запрещено давать ссылки на скачивание программ и книг с файлообменников (рапида,...
C++ Условие в while подскажите пожалуйста, могу ли я таким образом задавать условие в while как ниже в коде. Мне в принцепи надо что бы выполнялось до тех пор пока указатель не будет над последним элементом матрицы, то... подробнее

Показать сообщение отдельно
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
01.08.2011, 15:52
Цитата Сообщение от Maxwe11 Посмотреть сообщение
копирует по байту
Да, по-байту копировать долгий процесс если данных очень много вот накидал копирование двойными словами DWORD
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
 
void*  _memcpy(void* dst, const void* src, size_t size) {
    void* tmp           = dst;
    unsigned char* _src = (unsigned char*) src;
    unsigned char* _dst = (unsigned char*) dst;
    size_t   len;
    for(len = size / 4u; len--; _src += 4u, _dst += 4u)
       *(size_t*) _dst = *(size_t*) _src;
    len = size % 4u;
    while(len--)
      *_dst++ = *_src++;
    return tmp;
}
 
 
int main(int argc, char* argv[])
{
   int arr[]   = { 12, 23, 45, 55, 22, -50, -5, -4, 900 };
   int dst[9];
   int i;
   char a[]   = "aabb";
   char b[4];
 
   _memcpy(dst, arr, sizeof(arr));
 
   for(i = 0; i < sizeof(dst) / sizeof(int); i++)
        printf("%d, ", dst[i]);
 
 
   puts( (char*) _memcpy(b, a, sizeof(a)) );
 
   getchar();
   return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.