Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
функция memcpy 14.10.01 19:41 Число просмотров: 1000
Автор: Heromantor Статус: Незарегистрированный пользователь
|
> если не сложно объясните что выполняет функция memcpy > спасибо
void * __cdecl memcpy (
void * dst,
const void * src,
size_t count
)
Хехе вероятно копирует кусок памяти из src, в dst, размером в count. Работает просто погано по крайней мере в VC, лучше пользовать MOVSB, MOVSW, и что-то там еще для DWORD то-ли MOVSD то-ли MOVSDW хз
Вот например такой ф-цией.
void *memcpy(void *dst, const void *src, unsigned long len)
{
void *ret=dst;
_asm{
push esi
push edi
cld
mov edi,dst
mov esi,src
mov ecx,len
rep movsb
pop edi
pop esi
}
return(ret);
}
Лучше ессно копировать DWORDами но ф-ция малость усложниться.
|
|
<programming>
|
функция memcpy 14.10.01 18:29
Автор: ret Статус: Незарегистрированный пользователь
|
если не сложно объясните что выполняет функция memcpy
спасибо
|
 |
функция memcpy 14.10.01 19:41
Автор: Heromantor Статус: Незарегистрированный пользователь
|
> если не сложно объясните что выполняет функция memcpy > спасибо
void * __cdecl memcpy (
void * dst,
const void * src,
size_t count
)
Хехе вероятно копирует кусок памяти из src, в dst, размером в count. Работает просто погано по крайней мере в VC, лучше пользовать MOVSB, MOVSW, и что-то там еще для DWORD то-ли MOVSD то-ли MOVSDW хз
Вот например такой ф-цией.
void *memcpy(void *dst, const void *src, unsigned long len)
{
void *ret=dst;
_asm{
push esi
push edi
cld
mov edi,dst
mov esi,src
mov ecx,len
rep movsb
pop edi
pop esi
}
return(ret);
}
Лучше ессно копировать DWORDами но ф-ция малость усложниться.
|
|
|