如何进行int类型数组高效拷贝

jsjjms 2006-07-27 04:28:45
本人不才,对int类型的数组拷贝一直使用for循环进行.(int a[10] copy to int b[10] )

但效率太低,尤其在嵌入式开发中.

请教各位大虾, 如何拷贝,或者赋值更高效(不能使用嵌入汇编)

谢谢!
...全文
493 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐巧 2006-07-28
  • 打赏
  • 举报
回复
memcpy
如果源地址和目的地址存在重叠,用memmove
goodluckyxl 2006-07-28
  • 打赏
  • 举报
回复
恩 应该拷贝很简单只是简单的通过总线访问一下数据
然后再通过数据总线读回数据
只要保证传输数据宽度和总线宽度保持一致
那么速度就是最快 当然仅仅指拷贝哦
jsjjms 2006-07-28
  • 打赏
  • 举报
回复
to goodluckyxl(被人遗忘的狗) ( ) 信誉:166
存储设备之间拷贝不是使用DMA的。

可能还是PC硬件和我用的硬件差异导致的.
我对我们系统的硬件还不是很清楚,

谢谢各位了.
jsjjms 2006-07-28
  • 打赏
  • 举报
回复
to: gongyuan() ( ) 信誉:100
字串是char是单字节的,int宽度是char的两倍.所以直接不能copy.
gongyuan 2006-07-27
  • 打赏
  • 举报
回复
如果把他们看成字符串来copy行吗?请教一下各位!谢谢啦!
goodluckyxl 2006-07-27
  • 打赏
  • 举报
回复
memcpy是不是自己实现的?
对于int型的数据拷贝最高效率
首先要确定int长度是否为机器字长
如果不是需要转为字长处理
至于memcpy不memcpy都是一样的自己写对应类型实现函数是很可靠的
如果你有dma控制芯片可存储设备之间拷贝直接依靠dma来实现不要cpu来干预
几乎没有什么效率影响问题
jsjjms 2006-07-27
  • 打赏
  • 举报
回复
to: jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) ( )

在编译器上进行实验都使用memcpy都是没有问题,不过一上到真正平台模拟器上,

就不知道什么原因,copy的buffer 就乱掉了。 郁闷.
jsjjms 2006-07-27
  • 打赏
  • 举报
回复
void main()
{
int a[10] = {1, 2};
memset(a, 1, sizeof(a));

for(int i=0; i<10; ++i)
cout<<a[i]<<endl;
}

输出结果为:
16843009
16843009
16843009
16843009
16843009
16843009
16843009
16843009
16843009
16843009
Press any key to continue
jsjjms 2006-07-27
  • 打赏
  • 举报
回复
to: fishyqd(小鱼儿) ( ) 信誉:100

memset()是对char这样宽度进行处理的,
对int类型好象不能直接处理.
fishyqd 2006-07-27
  • 打赏
  • 举报
回复
void *memset(void *buf, char ch, unsigned count).
memset(a,0xffff,sizeof(a));貌似这样
jsjjms 2006-07-27
  • 打赏
  • 举报
回复
如果对int a[10]赋值如何处理?

比如我要将a[0] ~ a[9] 全部赋值为0xffff???
睡在床板下_ 2006-07-27
  • 打赏
  • 举报
回复
b=a
jixingzhong 2006-07-27
  • 打赏
  • 举报
回复
void *memccpy(void *destin,void *source,unsigned char ch,unsigned n)

memccpy从source复制字节到destin.复制一结束就发生下列任一情况:
(1)字符ch首选复制到destin.
(2)n个字节已复制到destin.

也许这个也会用到,
可以复制一部分内存 ...
anyue417 2006-07-27
  • 打赏
  • 举报
回复
我不懂,看大牛们发挥
jixingzhong 2006-07-27
  • 打赏
  • 举报
回复
int a[10] copy to int b[10]:

memcpy(b, a, sizeof(a));
jixingzhong 2006-07-27
  • 打赏
  • 举报
回复
memcpy 直接内存拷贝会好一点 ...

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧