Для того, чтобы функция инлайн использовать встроенный ключевое слово:
inline int maximum(int x, int y, int z) // note the inline keyword
{
int max = x;
if (y > max)
max = y;
if (z > max)
max = z;
return max;
}
Если функция является членом класса/структуры, то просто определив его внутри класса (как проставление к вне его) делает его в очереди.
Скажем у вас есть вызов:
int f = maximum(3, 4, 5)
компилятор может расширяющийся вызов на что-то вроде:
int max = x;
if (y > max)
max = y;
if (z > max)
max = z;
int z = max;
Там какая-то накладные расходы на вызов функции, поэтому встроенные функции дают вам удобство функции вместе с производительностью макросов C. Но это не означает, что вы всегда должны их использовать, в большинстве случаев компилятор лучше решает, когда такие оптимизации нужны и, возможно, даже не соблюдают ваш запрос.
Вы можете прочитать больше о встроенных функциях и как (и когда), чтобы использовать их в C++ FAQ Lite и это GotW
Put «инлайн» перед определением функции. – 2010-04-29 16:36:06
Вам также нужно будет поместить определение функции в заголовок (или иначе сделать его доступным в каждой единицы перевода ... –
Имейте в виду, что ключевое слово 'inline' обычно не влияет на то, является ли функция встроенной или нет, с любым разумно современным компилятором. Что он будет делать, так это позволить вам определить функцию в нескольких местах, если все определения идентичны (например, вы могли бы иметь это, определенное в нескольких заголовках, если это было 'inline'). –