А Вы не путаете С и С++? Вот тут https://thecode.media/c-cpp/ написано:
C => Можно объявлять глобальную переменную несколько раз
C++ => Глобальная переменная объявляется только один раз
И тут http://www.c-cpp.ru/books/razlichie-mezhdu-s-i-s
"В С объявление глобальной переменной несколько раз не является ошибкой, хотя и не служит признаком хорошего программирования. В С++ это является ошибкой."