Разница между пустыми и не пустыми функциями в C ++

0

У меня есть простой вопрос

Скажем, у меня есть две функции в C++:

void DoSomething();

а также

bool DoSomething();

Есть ли разница в памяти или скорости между этими двумя функциями?

И второй вопрос, связанный с первым: я полагаю, что есть разница в скорости, так как bool должен вернуть некоторую ценность. Но мне вообще не нужно использовать возвращаемое значение. Итак, было бы хорошо для меня объявить DoSomething() как bool, на всякий случай я решил что-то вернуть в будущем?

  • 3
    Почему бы тебе не проверить это?
  • 1
    Разница, вероятно, будет незначительной - что вызывает у вас беспокойство?
Теги:
function
memory

1 ответ

9
Лучший ответ

Если у вашей функции нет причин возвращать что-то, она не должна возвращать ничего, т.е. Она должна возвращать void. Нет смысла давать функцию, которая не приводит к результату искусственного возврата.

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

Когда вещи становятся интересными, это возвращение массивных объектов: потенциальное копирование может быть дорогостоящим, и есть также преимущество в скорости повторного использования памяти. Однако эти соображения не относятся ни к одному из встроенных типов.

  • 0
    Также обратите внимание, что даже «потенциальная копия» встречается довольно редко. Большинство типов данных могут быть перемещены, иначе компилятор обычно будет применять RVO.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню