【发布时间】:2010-11-15 14:56:46
【问题描述】:
在 C++ 中是否有更快的 memcpy() 替代方法?
【问题讨论】:
-
如果有更快的方法,他们为什么不在
memcpy实现中使用它? -
@MehrdadAfshari:
memcpy函数可以使用任意对齐的指针调用,指向任意 PODS 类型的对象,并且可以任意为其地址已暴露给外部代码的任何 PODS 对象设置别名。鉴于struct fnord a,b; void * volatile p=&a,*volatile q=&b;,我希望*((struct fnord*)p)=*((struct fnord*)q);的性能比memcpy(p,q, sizeof (struct fnord));好得多,因为在前一种情况下,编译器可以合理地假设p 和q 将与struct fnord对齐并且不会为其他任何东西设置别名,但在后一种情况它不能。
标签: c++ optimization memcpy