Sha*_*ang 7 c memory memcpy dereference
在内存中复制已知结构时,您更喜欢使用memcpy还是取消引用?为什么?具体来说,在以下代码中:
__CODE__
Kei*_*son 13
memcpy()在复制结构时,我无法想到使用而不是赋值的任何好理由(只要您不需要执行深层复制或涉及struct hack或灵活数组成员的任何内容,其中任何一个都不适用于这个案例).
它们具有完全相同的语义,并且赋值(a)可能为编译器提供更多优化机会,并且(b)减小大小错误的风险较小.
一些非常古老的C编译器可能不支持结构赋值,但这不再是一个重要的问题.
(还有其他理由喜欢在C++中进行分配,但你的问题是关于C.)
顺便说一句,括号中
(*pto) = (*pfrom);
Run Code Online (Sandbox Code Playgroud)
没必要; 一元*紧紧地束缚着这个:
*pto = *pfrom;
Run Code Online (Sandbox Code Playgroud)
大多数读者都是正确和充分清楚的.
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |