Некоторые отличия между inline и static переменными в C++:
Область видимости. ru.stackoverflow.com habr.com Переменная, объявленная без слова static, имеет внешнее связывание — существует в единственном экземпляре во всей программе. ru.stackoverflow.com Переменная со словом static имеет внутреннее связывание — существует как отдельная переменная в каждой единице трансляции, в которой объявлена. ru.stackoverflow.com
Время жизни. leovangit.github.io Статическая локальная переменная живёт от первого вызова функции и до конца программы. leovangit.github.io Переменная, объявленная без слова static, существует только во время запуска и выхода программы. leovangit.github.io
Инициализация. ru.stackoverflow.com Переменная, объявленная со словом static, инициализируется в заголовочном файле, при этом каждая единица трансляции работает со своей копией объекта. ru.stackoverflow.com Переменная, объявленная без слова static, инициализируется в одной единице трансляции. ru.stackoverflow.com
Таким образом, основное отличие заключается в том, что static определяет область видимости и время жизни переменной, а inline — способ её определения.
Ответ сформирован YandexGPT на основе текстов выбранных сайтов. В нём могут быть неточности.
Примеры полезных ответов Нейро на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Нейро.