最佳初始化代码

时间:2011-07-13 10:24:56

标签: c++

以下哪个代码最适合初始化数组?

char szCommand[2048] ={0}

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

5 个答案:

答案 0 :(得分:5)

第二个不是初始化数组,更像是分配它。我认为,如果有任何明显的差异(不会有)你必须自己进行分析,并看到第一个版本可能会快一点 - 但这只是在优化失效时。 过早的优化是所有邪恶的根源 - 只是DON“T想一想

答案 1 :(得分:3)

两个版本之间的性能差异是如此微不足道(如果编译器没有优化差异),我倾向于选择最可读的

答案 2 :(得分:2)

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

答案 3 :(得分:2)

对于空终止字符串,在我看来,最佳初始化是这个

szCommand[0] = 0;

答案 4 :(得分:0)

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