Нет такой вещи как глобальная статическая переменная.Статическая переменная имеет область видимости файла - и для файлов .h это означает, что каждый файл, в который она включена, получает свою переменную с именем i
.Чтобы объявить глобальную переменную, поместите объявление extern int i
в заголовок и просто int i
в глобальной области видимости в одном файле реализации (технически не имеет значения, какой именно).