社区
C语言
帖子详情
如何进行int类型数组高效拷贝
jsjjms
2006-07-27 04:28:45
本人不才,对int类型的数组拷贝一直使用for循环进行.(int a[10] copy to int b[10] )
但效率太低,尤其在嵌入式开发中.
请教各位大虾, 如何拷贝,或者赋值更高效(不能使用嵌入汇编)
谢谢!
...全文
493
16
打赏
收藏
如何进行int类型数组高效拷贝
本人不才,对int类型的数组拷贝一直使用for循环进行.(int a[10] copy to int b[10] ) 但效率太低,尤其在嵌入式开发中. 请教各位大虾, 如何拷贝,或者赋值更高效(不能使用嵌入汇编) 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 直接内存拷贝会好一点 ...
C++安全方便
高效
地复制对象
数组
在C++中,我们经常遇到需要对一个对象
数组
进行
复制,比如下面一个结构: struct STest {
int
a;
int
b; vector<
int
> vct
Int
; }; 我们定义了两个
数组
: STest A[20]; STest B[20]; 需要将
数组
A中的所有内容复制到B
数组
中,通常我们的做法都是这样: for(size_t i = 0; i < ARRAYSIZE(A); ++i) { A[i] = B[i]; } 这里不能直接使用memcpy,因为STest中有vector
类型
。但是,如果我们定
【Java】Java中关于
数组
拷贝
的几种方法
很多时候,Java中需要用到
数组
拷贝
,所以本篇文章来介绍几种
数组
拷贝
的方法。 Java中关于
数组
拷贝
的几种方法:1.最普通的
拷贝
2.提供的
数组
函数(Arrays.copyof()) 1.最普通的
拷贝
对于
拷贝
,大家都能理解和知道的肯定就是自己写一个方法去实现
拷贝
,也就是在main方法中调用一个方法,返回一个
数组
是
拷贝
完成的
数组
。 代码实现: public static
int
[] copyArray(
int
[] array){
int
[] copy = new
int
[array.len
【Java】
数组
的
拷贝
本文分享四种Java
数组
的
拷贝
方法
C#中
数组
复制的四种方法
方法一:使用for循环
int
[]pins = {9,3,7,2}
int
[]copy = new
int
[pins.length]; for(
int
i =0;i!=copy.length;i++) { copy[i] = pins[i]; } 方法二:使用
数组
对象中的CopyTo()
java 字节
数组
拷贝
_java 中
数组
拷贝
详细介绍(arraycopy,addAll,序列化和反序列化)...
一、场景有时候由于需要可能需要
拷贝
数组
的中的数据,从而是我们能更好的操作数据二、使用方法在这个时候我们一般会想到
数组
的
拷贝
的方式,当然这种方式可以使用,一般有addALL,和System.arraycopy。但一定要注意你的
数组
中放的是什么数据,是对象还是基本
类型
的数据。这一点很重要,接下来将通过测试代码详细介绍这些方法。1、addAll()和System.arraycopy的区别:以下是java...
C语言
69,377
社区成员
243,076
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章