2011-03-10 73 views
1

假设我有这样的结构(或类,我的问题适用于):0初始化的C++内置类型

struct builtin 
{ 
    int a; 
    int b; 
    builtin() : a(), b(0) { } 
}; 

我知道a和b会通过的构造函数初始化为0内置。 我的问题是:一种方法比另一种更快吗?

+0

我认为这样的微观优化是不必要的,你应该专注于更复杂的应用程序逻辑优化 – n00b 2011-03-10 16:13:33

+1

a()起初速度更快,因为你有一个较少的字符键入,但b(0)更快后摊还所有次你会读这行。 2011-03-10 16:14:03

+0

对于一个字符的差异,我认为这是值得的,当你考虑内置类型初始化可以被称为程序中的一千次。 – plmaheu 2011-03-10 16:18:17

回答

1

答案:否。编译的代码是相同的。

7

他们这样做,并采取相同的时间。而且,在这个级别上的优化是毫无意义的,直到一个分析器证明相反。使用更可读的东西。

+0

如果速度更快,对新代码有用。我不同意几乎免费的优化(一个字符差异)是毫无意义的。 – plmaheu 2011-03-10 16:30:26

+1

编译器编写人员已经知道由于一个字符差异而发生的优化。他们让它自动发生。相信你的编译器! – 2011-03-10 16:39:13

+0

+1为可读性。 – 2011-03-10 17:51:24

1

结果机器代码没有区别,仅在可读性方面。这里,a默认初始化,而b设置为特定值。

在源代码中显示这一点很重要吗?选择最有意义的那个!