Никогда не следует использовать статическую встроенную функцию?
Есть два значения использованияinline
ключевое слово (& # xA7; 7.1.3 / 4):
Обычно любой основной компилятор заменяет тело функции в точке вызова, если это необходимо, поэтому маркировка функцииinline
просто для#1
не очень нужно.
Далее w.r.t#2
Как я понимаю, когда вы объявляете функцию какstatic inline
функция,
static
Ключевое слово на функцию заставляетinline
функция иметь внутреннюю связь (inline functions have external linkageКаждый экземпляр такой функции рассматривается как отдельная функция (address of each function is different) и каждый экземпляр этих функций имеет свои собственные копии статических локальных переменных & amp; строковые литералы (an inline function has only one copy of these)
Таким образом, такая функция действует как любая другаяstatic
функция и ключевое словоinline
больше не имеет значения, оно становится излишним.
Итак, практически маркировка функцииstatic
а такжеinline
оба не имеют никакого смысла. Либо это должно бытьstatic
(not most preferred) или жеinline
(most preferred),
Итак, используетstatic
а такжеinline
вместе на функцииpractically бесполезный?