请问不同类型缓冲区拷贝的问题,又没有最快的办法?

void MyCopy(float*s,short*dat,int len)
{
int i;
for(i=0;i<len;i++)
s[i] = (float*)dat[i];
}
//请问又没有比这种更快的方法? memmove 与memcpy 都不行!
//谢谢!
[185 byte] By [samhoust-福田瓜] at [2008-6-5]
# 1
你的操作正确么?

s[i] = (float*)dat[i];
or
s[i] = (float)dat[i];
# 2
由于 short 和 float 类型的内存布局是不一样的,
所以,
直接拷贝内存结果是不对的 ...

只能通过你的这个强制处理
# 3
memcpy我想是用汇编写的吧,楼主可以试着找一下原码,小改一下应该就好使了。等待答案。。。。
lingboli-凌波丽 at 2007-10-26 > top of Msdn China Tech,C/C++,C语言...
# 4
用指针效率可以高点。

void MyCopy(float*s,short*dat,int len)
{
for(int i=0;i<len && *s++ = (float)*dat++;i++)
;
}
lj860603-跑吧,键键 at 2007-10-26 > top of Msdn China Tech,C/C++,C语言...
# 5
当然,要快点也可以嵌入汇编代码来实现。
lj860603-跑吧,键键 at 2007-10-26 > top of Msdn China Tech,C/C++,C语言...
# 6
这个没有什么块不快的问题吧。都那样咯!
# 7
没有,都需要类型转化进行赋值
至于指针形式和数组形式,如果对象是指针编译后都是指针访问形式
无所谓快不快