Да и нет.
Допустим, вы добавили это определение в «myvar.h», а затем включили этот заголовочный файл в «main.c» и «other.c»
Все функции в main.c и other.c будут знать об определенной переменной - так что она в некотором роде глобальная.
Но на самом деле будут две разные переменные с одинаковым именем,Изменения, сделанные функциями в «main.c», не будут видны функциями в «other.c» и наоборот.
Это потому, что статические переменные, определенные вне функций, считаются «локальными для модуля компиляции». .
С другой стороны, если вы просто удалите ключевое слово «static», переменная будет определена дважды (один раз для каждой единицы компиляции, в которую включен файл заголовка), и компоновщик выдаст «дубликат». ошибка символа.