Inline варіації стандарту C99 та GNU

варіації

Всім привіт Зацікавився одним питанням з приводу модифікаторів вбудованих функцій (inline) для стандартів C99 і GNU

Перше що мене збентежило, так це уривок із книги

Функції з підстановкою тіла оголошуються за допомогою ключових слів staic та inline у ​​декларації функції. Наприклад,

Декларація функції має бути описана перед будь-яким її викликом, інакше під-

становлення тіла не буде здійснено. Стандартний прийом – це розміщення функцій

з підстановкою тіла у заголовних файлах. Оскільки функція оголошується як

статична (static), екземпляр функції без підстановки тіла не створюється. Якщо

функція з підстановкою тіла використовується тільки в одному файлі, то вона може

бути розміщена у верхній частині цього файлу.

Але пізніше я нарвався на статтю http://www.greenend.org.uk/rjk/2003/03/inline.html тут розглядаються ще варіації використання функцій, що вбудовуються (розділ стандарту C99) і якщо я правильно переклав текст, то мої висновки наступні: inline - означає вбудована тільки в тому модулі, де оголошена і визначена, для інших модулів ЗАГАЛЬНО не доступна extern inline - вбудована тільки в тому модулі, де визначено і оголошено, але код створюється , так що її можна смикати з інших модулів, де вона вже буде неустроюваною static inline - взагалі не зрозумів відмінність від звичайної inline

ЗИ: Яким же стандартом керуються розробники ядра linux? Тому що ось ядерний хедер