Ключевое слово inline перед объявлением и определением функции служит указателем компилятору не вызывать функцию, а встроить ее код в тело программы. Это позволяет снизить расходы на вызов функции.
Не обязательно компилятор обработает ключевое слово inline. Он оптимизирует по своему усмотрению.
Компилятор GCC дает ошибку (" undefined reference to '...'"), если просто указать inline, нужно указывать static inline.
#include <stdio.h> // printf()
static inline void foo(){
printf("foo");
}
int main(){
foo();
return 0;
}