初始化的最佳代码
Optimal Code for initialization
下面哪个代码对于初始化数组是最佳的?
char szCommand[2048] ={0}
char szCommand[2048];
memset(szCommand,0,2048);
第二个不是初始化数组,它更像是对它赋值。我认为如果有任何明显的区别(不会有),你必须自己分析一下,看看第一个版本可能会快一点点——但这只是在优化关闭的情况下。过早优化是万恶之源-只是不要想它
两个版本之间的性能差异将是如此微不足道(如果编译器没有优化消除差异),我倾向于使用最易读的。
对于以空结尾的字符串,在我看来,最佳初始化是这样的
szCommand[0] = 0;
任何像样的编译器都应该对这两种情况发出相同的代码。在memset
的情况下,编译器可以通过理解来自标准库的函数的语义来消除函数调用。
两个都是一样的,第一个版本是紧凑的-就是这样。
相关文章:
- 在c代码之间共享数据的最佳方式
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 在nodejs中使用本机代码的最佳方法是什么?
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 分离类所有权和使用,生成最佳(快速)代码
- C++:销毁此代码的最佳方法是什么?
- 最佳C 11测量嵌入式系统代码执行时间的方法
- 最佳实践:使用随机数生成器的测试代码
- 将使用双向popen()的C++代码移植到POSIX的最佳方式
- iOS和Android之间共享代码的最佳方式
- RVO,移动语义和争取最佳代码
- 将C++代码与Python接口的最佳方式是什么
- 将浮点数组转换为整数的最佳方式.[替换x64的asm代码]
- 分离配置代码和算法代码的最佳做法
- 在同时为 C++03 和 C++14 的代码中进行简单随机洗牌的最佳实践是什么?
- 记录C++代码的最佳位置
- 在我的解释器上为脚本代码实现语法检查器的最佳方式是什么
- 组织X11和Win32简单游戏代码的最佳方式是什么
- 从非托管代码调用托管.NET代码的最佳方式
- 在实现迭代器和const_iterator类时避免代码重复的最佳实践