Чтобы сделать функцию встроенной, используйте ключевое слово inline:
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 ++ FAQ Lite и GotW