Все ли функции в c глобальные?
Нет. Во-первых, то, что многие называют (небрежно) global , C Language вызывает область действия файла с внешней связью .
Кроме того, даже в единице перевода (причудливый способ сказать «предварительно обработанный C файл») идентификатор функции виден только ( в области действия ) от его объявления до конца единицы перевода (или даже включающий блок).
Чтобы задать идентификатор функции внутренняя связь (чтобы другая функция или объект с таким же именем могли существовать в другом объектном файле), вы используете ключевое слово static
.