Определение функции может быть до или после основного или даже в другом файле. Необходимо, чтобы объявление (или «прототип») функции находилось перед кодом, использующим функцию.
То, куда вы поместите свой код, может повлиять на время компиляции. Если весь код находится в одном файле, перекомпиляция небольшого изменения занимает больше времени, но если вы поместите код в разные файлы, для перекомпиляции небольшого изменения может потребоваться меньше времени для перекомпиляции в исполняемый файл.