Ваш преподаватель курса не прав.Это это стандарт.Это на самом деле в текущий стандарт, прямо в разделе 6.7.4 Function specifiers
(C99).Тот факт, что это предложение для компилятора, которое может быть полностью проигнорировано, не делает его менее стандартным.
Я не думаю, что это было в C89 / 90, что может быть тем, что используют некоторые встроенные компиляторы, но я бы хотел серьезное рассмотрение вопроса об обновлении в этом случае.
Однако, даже когда inline
доступен, я обычно оставляю эти решения на усмотрение самого компилятора, так как большинство современных более чем способнывыяснить, как лучше оптимизировать код (и, как правило, гораздо лучше, чем я).Ключевое слово inline
, например register
и auto
, обычно не вызывает у меня беспокойства.
Вместо этого вы можете использовать макросы, поскольку это относительно простая замена текста, которая обычно происходит перед фазой компиляции, ноВы должны знать об ограничениях и недостатках.
Или вы можете вручную встроить код (то есть дублировать его), хотя я бы не предложил это как вариант, поскольку он может быстро стать кошмаром обслуживания.
Сам я бы написал код, используя обычные функции без любых этих уловок, а затем представил бы их при необходимости (и только , если вы можете продемонстрировать, что они необходимы, например,как конкретная проблема производительности).
Вы всегда должны предполагать, что кодер, который должен поддерживать ваш код, является психопатическим убийцей, который знает, где вы живете: -)