Функция inline
может быть определена в нескольких единицах перевода (файл cpp + включает в себя) и является подсказкой компилятору для включения функции. Обычно он помещается в заголовок, который увеличивает время компиляции, но может привести к более быстрому коду. Это также позволяет использовать функцию из многих модулей компиляции.
//cube.h
inline double cube(double side)
{
return side * side * side;
}
//cube.cpp
int main( )
{
cube(5);
}
Регулярное его определение - это обычный метод, когда он (обычно) определяется в файле cpp и связан с ним. Его нелегко использовать из других модулей компиляции.
//cube.cpp
double cube(double side)
{
return side * side * side;
}
int main( )
{
cube(5);
}
Прототип позволяет вам сообщить компилятору, что функция будет существовать во время компоновки, даже если она еще не существует. Это позволяет main вызывать функцию, даже если она еще не существует. Обычно прототипы находятся в заголовках, поэтому другие модули компиляции могут вызывать функцию, не определяя ее сами. Это самое быстрое время компиляции, и эта функция легко используется из других модулей компиляции.
//cube.h
double cube(double);
//cube.cpp
int main( )
{
cube(5);
}
double cube(double side)
{
return side * side * side;
}