0 инициализация встроенных типов C ++ - PullRequest
1 голос
/ 10 марта 2011

предположим, у меня есть эта структура (или класс, мой вопрос относится к обоим):

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

Я знаю, что и a, и b будут инициализированы в 0 конструктором buildin. У меня вопрос: один метод быстрее другого?

Ответы [ 3 ]

7 голосов
/ 10 марта 2011

Они делают то же самое и занимают одинаковое количество времени.Кроме того, оптимизация на этом уровне не имеет смысла, пока профилировщик не докажет обратное.Используйте то, что вам удобнее читать.

1 голос
/ 10 марта 2011

Нет никакой разницы в полученном машинном коде, только в удобочитаемости. Здесь по умолчанию инициализируется a, а для b задано определенное значение.

Это важно показать в исходном коде? Выберите тот, который имеет больше смысла!

1 голос
/ 10 марта 2011

Ответ: нет.Скомпилированный код идентичен.

...