Это больше вопрос языка C, чем вопроса C ++, но:
void f(int n);
Объявляет функцию f, которая принимает один целочисленный параметр.функция f, которая принимает один целочисленный параметр, но существует в каком-то другом файле.Компилятор будет доверять, что вы где-то реализовали функцию.Если компоновщик не может его найти, вы получите ошибку компоновщика.
static void f(int n);
Объявляет функцию f, которая принимает один целочисленный параметр.Ключевое слово static делает это интересным.Если это файл .cpp, функция будет видна только этому файлу.Если он находится в файле .h, каждый файл .cpp, содержащий этот заголовок, создаст собственную копию этой функции, доступную только для этого файла реализации.