初始化的最佳代码

Optimal Code for initialization

本文关键字:代码 最佳 初始化      更新时间:2023-10-16

下面哪个代码对于初始化数组是最佳的?

char szCommand[2048] ={0}

char szCommand[2048];
memset(szCommand,0,2048);

第二个不是初始化数组,它更像是对它赋值。我认为如果有任何明显的区别(不会有),你必须自己分析一下,看看第一个版本可能会快一点点——但这只是在优化关闭的情况下。过早优化是万恶之源-只是不要想它

两个版本之间的性能差异将是如此微不足道(如果编译器没有优化消除差异),我倾向于使用最易读的

对于以空结尾的字符串,在我看来,最佳初始化是这样的

szCommand[0] = 0;

任何像样的编译器都应该对这两种情况发出相同的代码。在memset的情况下,编译器可以通过理解来自标准库的函数的语义来消除函数调用。

两个都是一样的,第一个版本是紧凑的-就是这样。