Чи макроси швидші за функції C++?

Швидкість проти розміру Головною перевагою використання макросів є швидший час виконання. Під час попередньої обробки макрос розгортається (замінюється його визначенням) у рядку кожного разу, коли він використовується. Визначення функції виникає лише один раз, незалежно від того, скільки разів її викликали. 19 жовтня 2022 р.

Макроси працюють швидше, ніж функції оскільки немає додаткових витрат на виклик функції. Функції, як правило, повільніші.

Виконання макросу швидше, ніж виконання функції тому що у функції велика частина часу використовується для керування від виклику функції до викликаної функції, і багато часу витрачається на цей процес. Тоді як у макровиразі безпосередньо замінюються у вихідному коді.

Макроси мають явну перевагу в тому, що вони ефективніші (і швидші), ніж функції, оскільки їхній відповідний код вставляється безпосередньо у ваш вихідний код у місці виклику макросу. Використання макросу не вимагає накладних витрат, як виклик функції.

Оголошуючи вбудовану функцію, ви можете наказати GCC робити виклики цієї функції швидше. Одним із способів досягнення цього GCC є інтеграція коду цієї функції в код для її абонентів.

Використання макросів є загальноприйнятою практикою, ви просто повинні знати про їхнє належне використання та невдале неправильне використання, щоб уникнути пасток. Це не «погана практика», як випливає з запитання. C++ як мова намагалася їх усунути, але інженери мови зазнавали невдач і знову невдач. Вам потрібні макроси.