0初始化的C++内置类型
假设我有这样的结构(或类,我的问题适用于):0初始化的C++内置类型
struct builtin
{
int a;
int b;
builtin() : a(), b(0) { }
};
我知道a和b会通过的构造函数初始化为0内置。 我的问题是:一种方法比另一种更快吗?
答案:否。编译的代码是相同的。
他们这样做,并采取相同的时间。而且,在这个级别上的优化是毫无意义的,直到一个分析器证明相反。使用更可读的东西。
如果速度更快,对新代码有用。我不同意几乎免费的优化(一个字符差异)是毫无意义的。 – plmaheu 2011-03-10 16:30:26
编译器编写人员已经知道由于一个字符差异而发生的优化。他们让它自动发生。相信你的编译器! – 2011-03-10 16:39:13
+1为可读性。 – 2011-03-10 17:51:24
结果机器代码没有区别,仅在可读性方面。这里,a默认初始化,而b设置为特定值。
在源代码中显示这一点很重要吗?选择最有意义的那个!
我认为这样的微观优化是不必要的,你应该专注于更复杂的应用程序逻辑优化 – n00b 2011-03-10 16:13:33
对于一个字符的差异,我认为这是值得的,当你考虑内置类型初始化可以被称为程序中的一千次。 – plmaheu 2011-03-10 16:18:17